Windows

ssh 키로 PuTTY 자동 로그인 설정하기

채윤아빠 2022. 6. 6. 13:22
728x90
반응형

아주 예전 버전 PuTTY는 ssh와 동일한 키 파일을 공유하여 별도의 키를 관리할 필요가 없었는데, PuTTY가 버전이 올라가면서 Putty Authentication Agent 프로그램(Pagent.exe)에서 키를 관리하도록 변경되어, ssh 명령어와 키를 공유하지 않습니다.


그래서 리눅스 머신을 PuTTY로 접속할 때, ssh와 다르게 비번을 치거나 PuTTY는 다른 키로 자동 로그인을 하였었는데, PuTTY에서 ssh의 키를 가져와 "*.PPK"(PuTTY Private Key) 파일을 만들어서 Putty Authentication Agent 프로그램에 로딩해 놓으면 비밀번호 입력없이 자동 로그인이 가능합니다.

우선 다음과 같이 "ssh-keygen" 명령으로 생성한 공개키를 "ssh-copy-id" 명령으로 리눅스 머신으로 복사합니다.

$ ssh-copy-id pi@192.168.0.43
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/c/Users/HUNATURE/.ssh/id_rsa.pub"
The authenticity of host '192.168.0.43 (192.168.0.43)' can't be established.
ECDSA key fingerprint is SHA256:h/8usRv+0cxfYnGjfIP5fiJB2b9/OGitIYRK/k/pAcM.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
pi@192.168.0.43's password:

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'pi@192.168.0.43'"
and check to make sure that only the key(s) you wanted were added.

ssh 공개키가 리눅스 머신에 설정된 이후에는 다음과 같이 비밀번호 입력없이 바로 리눅스 머신으로 로그인이 됩니다.

$ ssh pi@192.168.0.43
Linux raspberrypi-vas 5.10.103-v7l+ #1529 SMP Tue Mar 8 12:24:00 GMT 2022 armv7l

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Tue Jun 28 07:48:09 2022

이 비밀키/공개키 쌍을 putty에도 적용하려면 우선 ssh로 생성한 비밀키 파일들을 이용하여 "*.PPK"(PuTTY Private Key) 파일을 만들어야 합니다.

만드는 방법은 putty와 함께 설치되는 "PuTTY Key Generator" (puttygen.exe) 프로그램을 이용합니다.

"PuTTY Key Generator" (puttygen.exe) 프로그램을 실행하면 위와 같이 아무런 키가 없는 화면이 나타납니다.

여기서 "Conversions > Import" 메뉴를 선택하여 ssh-keygen으로 생성한 "id_rsa" 파일을 열어 줍니다. 보통 "id_rsa" 파일은 "<사용자 계정 홈폴더>/.ssh" 폴더 아래에 있습니다. 탐색기 주소에 다음과 같이 입력하여도 됩니다.

%HOMEPATH%/.ssh

ssh의 비밀키 파일(id_rsa)을 선택합니다.

다음과 같이 "PuTTY Key Generator"에 가져온 비밀키에 대한 상세한 정보가 표시됩니다.

위 하면에서 "Save private key" 버튼을 선택하여, "*.PPK"(PuTTY Private Key) 파일로 저장합니다.

저장한 "*.PPK"(PuTTY Private Key) 파일을 탐색기에서 찾아 더블클릭을 하면 다음과 같이 "Putty Authentication Agent" 프로그램이 동작되면, 앞서 저장할 때 설정한 비밀번호를 묻게 됩니다.

올바른 비밀번호를 입력하면 해당 창이 사라지고, SSH 키와의 연동이 완료된 것입니다.

이후, PuTTY를 이용하여 공개키를 복사한 리눅스 머신으로 접속합니다.

리눅스 머신에 최초 경우에는 공개키를 등록할 것인지 묻는데, "Yes"를 입력합니다.

비밀번호 입력없이 바로 로그인이 가능하게 됩니다.

 

윈도우 오른쪽 하단에서 Pagent(Putty Authentication Agent) 아이콘을 더블클릭하면 현재 로딩된 Private key 목록을 다음과 같이 확인할 수 있습니다.