안녕하세요 롯사입니다.
이번 포스팅은 리눅스 서버에 원격 접속할 때 사용하는 명령어에 대해서 알아보겠습니다.
기본적으로 네트워크 통신에 제약이 없는 로컬 pc에서 접속 툴을 이용해서도 접속이
가능하고 리눅스 터미널 환경에서 다른 리눅스 서버로도 접속이 가능합니다.
이 시간에 다룰 내용은 리눅스 터미널 환경에서 다른 리눅스 서버로 접속하는 부분에
대해서 먼저 다루어보겠습니다.
what is ssh?
보안적으로 취약했던 기존 rsh, rlogin, telnet 등을 대체하기 위해 설계되었고 ( Secure shell )의
약자입니다. 기본 22번 port를 사용해서 네트워크로 연결돼 다른 리눅스 서버로 접속할 때 사용하는
프로토콜로써 기본 암호화 방식을 지원하고 중간에 암호를 해킹을 당해도 원본을 알 수 없고 강력한
인증 방식을 지원하기 때문에 보안적으로 우수한 프로토콜이라고 할 수 있겠습니다.
ssh 서버 실행 파일 : /etc/sbin/sshd
ssh 클라이언트 실행 파일 : /etc/bin/ssh
그럼 본론으로 들어가서 사용방법에 대해서 알아보겠습니다.
1. openssh-server 설치
* rpm -qa | grep sshd* ( ssh 설치 확인 )
전 이미 설치가 되어있습니다.
* yum install openssh-server ( ssh 설치 )
이미 설치가 되어있지만 편의를 위해서 진행했습니다.
* systemctl enable sshd ( 재부팅 후 자동등록 )
* systemctl start sshd ( 서비스 시작 )
* systemctl status sshd ( 서비스 상태 확인 )
* ps -ef | grep sshd ( 프로세스 상태 확인 )
다음과 같이 서비스 시작과 상태를 확인합니다.
정상적으로 잘 동작하고 있네요.
2. /etc/ssh/sshd_config 설정 및 확인 ( ssh 접속 시 규칙을 정의합니다 )
* vi /etc/ssh/sshd_config
vi/vim /etc/ssh/sshd_config 파일을 편집기로 열어서 필요한 부분만 정책에 맞게 수정해줍니다.
#Port 22 : ssh 기본 접속 port는 22번입니다. 임의의 port 번호를 지정해서 사용하고 계신 환경이라면
번호 지정 후에 주석을 해제합니다.
#ListenAddress 0.0.0.0 : 기본 default 값은 주석이 처리되어 있어서 정책이 동작하지 않지만
주석을 해제하고 특정 ip를 지정하면 해당하는 ip에서만 접속이 허용됩니다.
HostKey /etc/ssh/ssh_host_rsa_key
#HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key
: ssh 접속을 할 때 필요한 암호화 키가 저장되는 위치로 기본으로 default
ECDSA_KEY 암호화 방식을 사용합니다.
#PermitRootLogin no : root 계정으로 원격 접속 시 허용 여부를 정의합니다.
허용하려면 주석을 해제하고 no --> yes로 바꿔 주시면 root로 접속이 허용됩니다.
보안상 리스크가 있기 때문에 권장드리지는 않습니다.
* systemctl restart sshd ( ssh 서비스 재시작 )
위의 설정 파일의 내용을 변경하였다면 ssh 서비스 재시작을 해줍니다.
3. 방화벽 설정
* 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 )
centos 7 이상 환경에서 방화벽 (firewalld)와 iptables를 운영하고 계신다면 필수적으로 22번 port를
허용해줍니다.
4. ssh 접속 ( 원격지 접속 )
* ssh [사용자 계정]@[원격지 ip]
ssh root@192.168.159.129
exit
다음과 같은 형식으로 192.168.159.129 원격지 서버에 접속을 할 수 있습니다.
해당 서버의 password를 입력하고 접속이 성공하게 되면 원격 호스트의 쉘을 사용하게 됩니다.
exit를 누르고 logout 하면 원래의 쉘로 돌아오게 됩니다.
*~. ssh/know_hosts (홈 디렉터리의. sss/known_hosts)
위와 같이 한번 원격 접속이 이루어지고 나면 사용자 홈 디렉터리의. ssh/know_hosts 파일에
원격지(192.168.159.129) 접속에 필요한 키 값이 생성되게 됩니다.
특정 옵션을 제외하고 많이 사용하지는 않지만 ssh 접속 시 사용하는 옵션도 한번 체크해 보시고
넘어가시기 바랍니다.
옵션 | 내요 |
-a | 인증 에이전트 전송을 불허 |
-e | 세션에 대한 이스케이프 문자를 설정 |
-f | 인증과 전송이 설정된 후에 백그라운드에서 ssh를 설정 |
-l | 원격 시스템에 사용할 로그인 이름을 설정 |
-p | 원격 호스트에 연결할 포트를 지정 |
-v | 디버깅모드 자세한 정보 표시 모드를 활성 |
-x | X11 전송을 불가능하게 설정 |
-L | 지정된 원격 호스트와 포트에 전송할 로컬 포트 설정 |
-R | 로컬 호스트와 지정된 포트로 전송될 원격 포트 설정 |
ex ) ssh [원격 계정]@[원격지_ip] -p [변경할 포트] ( 포트 변경 시 지정해서 접속 )
ssh [원격 계정]@[원격지_ip] netstat -ntl ( 원격 접속 후 바로 수행할 명령문 입력도 가능합니다.)
이만 포스팅을 마치겠습니다.
모두 열공하세요 ^^
'IT 학습 공간 ::)' 카테고리의 다른 글
리눅스 파티션 설정 ( 파티션 만들기 / 파티션 나누기 ) (0) | 2019.05.13 |
---|---|
아크로니스 백업 설치 ( windows / acronis backup 12.5 ) (0) | 2019.05.13 |
리눅스 scp 명령어 사용법 ( 파일 전송 프로토콜 / 파일 보내기 /파일 받기 ) (2) | 2019.05.11 |
리눅스 nfs 마운트 (centos 7) (1) | 2019.05.10 |
리눅스 권한 관리 설정 (chmod, chown, chgrp ) (0) | 2019.05.10 |