1. 소개
우분투 서버를 관리하고 사용하는데 외부접속을 좀더 제한하여 보안을 강화한다.
보안강화는 접속 제한 두가지를 두고 SSH키 자체에 암호를 거는 것. 이렇게 세가지를 통합합니다.
2. 사용자 생성
우선은 sudo 권한이 있는 계정으로 서버접을 합니다.
3. RSA키 생성
# ssh-keygen -t rsa
위의 명령어를 이용해서 RSA 방식의 개인키와 공개키를 생성합니다. 명령어를 실행하면 아래와 같이 키를 저장할 디렉토리와 파일명을 입력하라고 합니다. 보통 디폴트로 되어 있는 위치로 생성하면 됩니다. 현재 계정 아래의 .ssh 디렉토리 아래에 생성이 됩니다.
Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa):
다음은 암호를 입력하라고 나옵니다. 만약 퍼블릭 키를 이용해서 리모트로 암호 없이 바로 접속할려면 암호를 입력하지 않고 엔터를 치면 됩니다.
Enter passphrase (empty for no passphrase): Enter same passphrase again:
마지막으로 아래와 같은 메시지가 출력되면서 파일이 생성됩니다.
The key fingerprint is: e9:54:90:a3:5d:ba:7b:34:f2:30:76:f5:c7:4c:d3:25 root@aaa The key's randomart image is: +--[ RSA 2048]----+ | .. | | o.. E .| | o +. .o| | . oo . .o| | S. . . +.| | o* + . +| | ..O . . | | . o | | . | +-----------------+
아래와 같이 id_rsa 개인키 파일과 id_rsa.pub공개키 파일이 생성됩니다.
total 16 -rw-r--r-- 1 root root 399 4월 9 18:10 authorized_keys -rw------- 1 root root 1679 4월 10 17:24 id_rsa -rw-r--r-- 1 root root 399 4월 10 17:24 id_rsa.pub -rw-r--r-- 1 root root 444 4월 9 21:06 known_hosts
공개키를 이용한 ssh 접속
위에서 생성한 SSH 키를 이용해서 다른 서버에 접속할 때는 접속할려는 서버 계정의 홈 디렉토리 아래의 .ssh/authorized_keys 파일을 생성한 후 위에서 생성한 공개키 스트링을 넣어두면 됩니다.
# cat ~/.ssh/id_rsa.pub ssh-rsa AAAAB3NzaC1yc2EAAAADDQABAAABAQCgatkuBNq72JGIR59+D5Xh271RcLgH+C/eydKHOoqdX5hpZuLnh4/72LagQuqEd6SXi/Obv4iEgyhp+qfmP0ub9gddAHPwCn3ZLgEc6VQoNgtToO9gdXXHKfIH5R4QmJGqCZwWrhyBlIVM6SYmb3mT29EUkVq4F3YEuHW2lF5K258p6O9flG5ONf9CopQhWtatCflmOV/SUEBZbEdq7AFW9WHGdWo9g7XVVQ0MEuoRfJL9cKF30e5BmlFqu1eWSCrf6PIGpVsH2ikpKm8OihfIn62eLD1qJJLMeagGHoe+Zce3++iUHrzj0EdM/L7Y9EKI9cq089mOfNkv0sCMY1xt root@aaa
이 공개키 값을 카피 후 접속할려는 서버의 ~/.ssh/authorized_keys 파일에 카피 합니다.
# cat ~/.ssh/authorized_keys ssh-rsa AAAAB3NzaC1yc2EAAAADDQABAAABAQCgatkuBNq72JGIR59+D5Xh271RcLgH+C/eydKHOoqdX5hpZuLnh4/72LagQuqEd6SXi/Obv4iEgyhp+qfmP0ub9gddAHPwCn3ZLgEc6VQoNgtToO9gdXXHKfIH5R4QmJGqCZwWrhyBlIVM6SYmb3mT29EUkVq4F3YEuHW2lF5K258p6O9flG5ONf9CopQhWtatCflmOV/SUEBZbEdq7AFW9WHGdWo9g7XVVQ0MEuoRfJL9cKF30e5BmlFqu1eWSCrf6PIGpVsH2ikpKm8OihfIn62eLD1qJJLMeagGHoe+Zce3++iUHrzj0EdM/L7Y9EKI9cq089mOfNkv0sCMY1xt root@aaa
이 후부터는 원격 서버에 접속시에 현재 서버의 개인키와 원격 서버의 공개키값이 조합되어 암호 없이 ssh 접속이 가능해 집니다.
# ssh -p 14101 sshtest.fun25.co.kr Last login: Fri Apr 10 15:37:18 2015 from 211.239.124.233 [email protected]:~#
보안 상이 이유로 ssh 서버에 위의 키 방식만 가능하게 하고 암호를 통한 접속은 불가능하도록 할려면 아래와 같이 sshd 설정을 하면 됩니다.
# vi /etc/ssh/sshd_config
sshd 설정파일을 편집해서 아래 옵션을 추가하면 암호를 통한 접속은 불가능합니다.
PermitRootLogin without-password
ssh 서비스를 리로딩합니다.
# service ssh reload