키 페어 (pair) 방식으로 SSH 서버에 접속하는 방법을 알아보자.
1. 키 페어 만들기
키 페어는 클라이언트 컴퓨터에서 만든다.
아래 명령으로 키 페어를 생성한다.
ssh-keygen
명령을 실행하면 키 페어를 저장할 파일 이름을 입력받기 위해 프롬프트가 대기한다. 아무것도 입력하지 않고 엔터 키를 누르면 기본값이 사용된다. 기본값은 ~/.ssh/id_rsa 이다.
암호를 입력받는 프롬프트가 대기한다. 암호는 선택 사항이다. 아무것도 입력하지 않고 엔터 키를 누르면 암호는 사용되지 않는다.
키 페어는 프라이빗 키와 퍼블릭 키로 구성된다. 프라이빗 키는 ~/.ssh/id_rsa 파일에 저장되고 퍼블릭 키는 ~/.ssh/id_rsa.pub 파일에 저장된다.
2. 퍼블릭 키의 전송
퍼블릭 키는 서버 컴퓨터에 저장되어야 한다. 서버 컴퓨터는 SSH 서버가 동작 중인 컴퓨터이다.
아래 명령으로 퍼블릭 키를 서버 컴퓨터로 전송한다. 이 명령은 클라이언트 컴퓨터에서 수행한다.
ssh-copy-id user1@sshserver.com
user1 은 암호를 통해 SSH 서버에 접속할 수 있는 사용자 계정이다. sshserver.com 은 서버 컴퓨터의 호스트네임이다.
명령을 실행하면 연결 작업을 계속할 것인지 묻는 프롬프트가 대기한다. yes 라고 입력한다.
서버 컴퓨터 사용자 계정의 암호를 묻는 프롬프트가 대기한다. 암호를 입력한다.
전송된 퍼블릭 키는 서버 컴퓨터의 ~/.ssh/authorized_keys 파일에 저장된다.
3. 암호 기반 인증 금지
SSH 구성 파일을 수정하여 암호 기반 인증을 금지한다. 이 작업은 서버 컴퓨터에서 수행한다.
SSH 구성 파일을 연다.
sudo vi /etc/ssh/sshd_config
PasswordAuthentication 부분을 찾아 아래와 같이 수정한다.
PasswordAuthentication no
SSH 서버를 재시작한다.
sudo systemctl restart ssh
4. 테스트
아래 명령으로 SSH 서버에 접속해 보자.
ssh user1@sshserver.com
암호를 입력하는 과정 없이 서버에 로그인된다면 성공이다.