SSH란?
SSH란 Secure Shell의 준말로, 네트워크 상의 다른 컴퓨터에 로그인하거나 원격 시스템에서 명령을 실행하고 다른 시스템으로 파일을 복사할 수 있도록 해 주는 응용 프로그램 또는 그 프로토콜을 지칭. SSH의 등장 이전에는 telnet을 이용한 원격 접속이 주를 이루었지만, telnet의 보안 문제로 이를 대체하기 위해 SSH가 등장하게 됨.
ssh 설정파일
클라이언트 설정파일 : /etc/ssh/ssh_config
서버 설정파일 : /etc/ssh/sshd_config
ssh 사용법
1. openssh-server 설치
yum -y install openssh-server (ssh설치)
ssh는 패키지이고, sshd는 데몬명이다.
systemctl enable sshd (재부팅 후 자동등록)
systemctl start sshd(서비스시작)
systemctl status sshd(서비스 상태 확인)
2. 방화벽 설정
* firewall-cmd --zone=public --add-port=22/tcp --permanent ( centos 7 이상 )
firewall-cmd --permanent --zone=public --add-port=22/tcp ( 위와 동일 )
firewall-cmd --reload
* iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT ( iptables )
3. 설정파일 변경
리눅스 master 를 서버로 사용하고, 리눅스 slave를 클라이언트로 사용합시다
MASTER
/etc/ssh/sshd_config
설정파일에서 이 3개를 확인하면 됩니다. 설정파일 바꾸고 나서 systemctl restart sshd
#PermitRootLogin no : root 계정으로 원격 접속 시 허용 여부를 정의함. 허용하려면 주석을 해제하고 no --> yes로 바꿔 주시면 root로 접속이 허용됨.
#PasswordAuthentication yes : 원격접속할 때 비밀번호 인증을 사용 여부를 정의함.
4. ssh 원격지 접속
- 비밀번호 사용
* ssh [사용자 계정]@[원격지 ip]
ssh root@192.168.111.10
exit
SLAVE
ssh 명령어를 사용하고 패스워드를 입력하면 쉽게 ip 원격지 서버에 접속을 할 수 있다.
그리고 exit 을 하면 logout 이 된다.
.ssh/know_hosts
원격 접속이 이루어지면 서버로부터 개인키로 서명한 해시값과 공개키를 받는다. 접속 성공 후 ~/.ssh/known_hosts 파일에 공개키가 저장된다.
- 전자서명 방법(개인키, 공개키)
SLAVE
[root@node1 ~]# cd .ssh/
[root@node1 .ssh]# ssh-keygen -t rsa
cf. rsa: 공개키 암호 시스템의 하나로, 암호화뿐만 아니라 전자서명이 가능한 최초의 알고리즘. rsa는 두 개의 키를 사용하며, 키란 메시지를 열고 잠그는 상수를 의미
- 공개키: 모두에게 알려져 있으며 메시지를 암호화하는데 사용
- 개인키: 암호화된 메시지를 개인이 가진 개인키로 복호화하여 열어볼 수 있음. but, 개인키로 암호화하여 공개키로 복호화하는 역도 성립 가능.
Enter file in which to save the key (/root/.ssh/id_rsa): 디렉터리 지정하지 않으면 이 위치에 키를 생성하겠다
Enter passphrase (empty for no passphrase): 키에 대한 비밀번호 부여(계정에 대한 비밀번호 쓰는 게 아님!!)
Enter same passphrase again: 비밀번호 확인
id_rsa는 개인키, id_rsa.pub는 공개키
[root@node1 .ssh]# ssh-copy-id -i id_rsa.pub root@192.168.111.10
* master ip 192.168.111.10
rsa.pub 공개키를 root@192.168.111.10 의 .ssh/authorized_keys 에 넣는다.
공개키를 master에게 집어넣었다면 이제 비밀번호가 없어도 slave의 비밀키를 이용해서 master로 원격 접속이 가능하다!
MASTER
/etc/ssh/sshd_config
형광펜 친 부분을 no로 바꿔서 계정 비밀번호 인증을 사용하지 않도록 하고 실습을 시작해보자.
SLAVE
[root@node1 .ssh]# ssh -i /root/.ssh/id_rsa root@192.168.111.10
개인키를 지정하여 root@192.168.111.10 에 원격 접속하는 명령어
개인키의 비밀번호를 입력하면 master 서버에 원격 접속 성공!!
MASTER
.ssh/authorized_keys 에 slave가 보낸 공개키가 들어와 있는 것을 확인할 수 있다.
'Linux' 카테고리의 다른 글
[CentOS8] 보조 DNS 서버 구축 (0) | 2021.02.09 |
---|---|
[CentOS8] SAMBA 사용법 (0) | 2021.02.08 |
[CentOS8] DNS 보안을 위한 TSIG (0) | 2021.02.01 |
[CentOS8] DNS 구축을 위한 BIND 설치 (0) | 2021.02.01 |
CentOS8 가상호스트 설정, Network Adapter 추가 (0) | 2021.01.25 |