서버에 ssh 접속을 암호 없이 하고자 할 경우, 클라이언트에서 생성한 공개/비밀 RSA 키(public/private RSA key)를 이용해서 설정할 수 있다. 클라이언트에서 생성한 공개키(public key)를 서버에 설치해서, 이 공개키에 대응하는 비밀키(private key)를 가진 클라이언트의 접속을 허용하는 방식이다.
예를 들어 서버 server1.test.net의 john이라는 계정을 암호 없이 ssh 접속하고자 한다고 가정해 보자. 클라이언트에서 아래와 같이 작업하면 된다.
# 공개키/비밀키 생성
ssh-keygen
"Enter file in which to save the key"라는 메시지가 나오는데, 키 파일을 저장할 위치와 파일명을 묻는 것이다. 그냥 엔터를 누르면 기본값으로 설정된다. 공개키 파일은 ~/.ssh/id_rsa.pub, 비밀키 파일은 ~/.ssh/id_rsa가 된다.
"Enter passphrase"라는 메시지는 접속 암호를 설정하기 위한 것인데, 암호 없이 접속할 계획이므로 그냥 엔터를 누른다. 확인 메시지에서도 그냥 엔터를 누르자.
이제 공개키/비밀키 파일이 생성되었다. 공개키 파일을 john@server1.test.net으로 보내어 설치하자.
# john@server1.test.net에 공개키 파일 설치
ssh-copy-id john@server1.test.net
접속 대상 서버에 접속암호를 입력하고 성공적으로 로그인하면 키 파일 설치가 진행된다.
설치가 완료되고 나면 해당 클라이언트에서는 대상 서버로 암호 없이 ssh 접속이 가능하다.
# ssh 접속 (암호 입력 없음)
ssh john@server1.test.net
서버측에서 현재 설치된 공개키 목록은 ~/.ssh/authorized_keys 파일에 있다. 위의 예시를 보자면, server1.test.net 서버의 /home/john/.ssh/authorized_keys 파일이다.
예를 들어 서버 server1.test.net의 john이라는 계정을 암호 없이 ssh 접속하고자 한다고 가정해 보자. 클라이언트에서 아래와 같이 작업하면 된다.
# 공개키/비밀키 생성
ssh-keygen
"Enter file in which to save the key"라는 메시지가 나오는데, 키 파일을 저장할 위치와 파일명을 묻는 것이다. 그냥 엔터를 누르면 기본값으로 설정된다. 공개키 파일은 ~/.ssh/id_rsa.pub, 비밀키 파일은 ~/.ssh/id_rsa가 된다.
"Enter passphrase"라는 메시지는 접속 암호를 설정하기 위한 것인데, 암호 없이 접속할 계획이므로 그냥 엔터를 누른다. 확인 메시지에서도 그냥 엔터를 누르자.
이제 공개키/비밀키 파일이 생성되었다. 공개키 파일을 john@server1.test.net으로 보내어 설치하자.
# john@server1.test.net에 공개키 파일 설치
ssh-copy-id john@server1.test.net
접속 대상 서버에 접속암호를 입력하고 성공적으로 로그인하면 키 파일 설치가 진행된다.
설치가 완료되고 나면 해당 클라이언트에서는 대상 서버로 암호 없이 ssh 접속이 가능하다.
# ssh 접속 (암호 입력 없음)
ssh john@server1.test.net
서버측에서 현재 설치된 공개키 목록은 ~/.ssh/authorized_keys 파일에 있다. 위의 예시를 보자면, server1.test.net 서버의 /home/john/.ssh/authorized_keys 파일이다.
태그 : ssh, 암호, 접속, 키파일, 공개키, 비밀키, ssh-keygen, ssh-copy-id, 리눅스, linux, id_rsa, id_rsa.pub, authorized_keys
덧글