ssh-keygen을 사용하면 비밀번호 없이 ssh를 통해 원격접속을 할 수 있습니다. 사용법+원리가 궁금하다면 잘 정리되어 있는 egoing님의 영상을 봐주시고, 간단하게 바로 따라하여 사용하고 싶다면 아래 첨부된 글을 봐주세요. 제 환경은 windows 10 이지만 ubuntu도 os 기본명령어를 빼면 크게 다르지 않습니다.
터미널창을 열고 ssh-keygen 을 입력합니다.(cmd, powershell, git bash, bash 등 어느것을 사용하던 상관 없습니다.)
그러면 아래처럼 출력이 되는데, 자세한 내용은 주석라인을 읽어주세요.
C:\Users\root>ssh-keygen
Generating public/private rsa key pair.
# 파일이 저장될 위치, 그냥 엔터치면 기본 설정으로 C:\Users\root/.ssh/ 에 파일이 생성
Enter file in which to save the key (C:\Users\root/.ssh/id_rsa):
# 일종의 비밀번호, 생략가능, 생략할때는 그냥 엔터
Enter passphrase (empty for no passphrase):
# 위에서 입력한 passphrase 를 입력, 여기도 위에서 생략했으면 그냥 엔터
Enter same passphrase again:
Your identification has been saved in C:\Users\root/.ssh/id_rsa.
Your public key has been saved in C:\Users\root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:woeifhOEIHfoWHFOIoiehOihfoweihFWFWEOIFHFw97G9 root@DESKTOP-97RFCC1
The key`s randomart image is:
+---[RSA 3072]----+
|+=o. ..=+.. |
|+oooo+ =.. . |
|.E.oo + o . . |
|o + + * . + |
|.. o+ X S o . |
|. B = . = |
| + o = . |
| ... + ... |
| .+..... |
+----[SHA256]-----+
C:\Users\root>
ssh key 파일이 생성됬는지 확인해봅니다.
C:\Users\root>cd .ssh
C:\Users\root\.ssh>dir
Volume in drive C is Windows
Volume Serial Number is CEE4-FE07
Directory of C:\Users\root\.ssh
2021-05-28 오전 11:23 <DIR> .
2021-05-28 오전 11:23 <DIR> ..
2021-05-28 오전 11:23 2,610 id_rsa
2021-05-28 오전 11:23 577 id_rsa.pub
2 File(s) 3,187 bytes
2 Dir(s) 463,762,251,776 bytes free
C:\Users\root\.ssh>
이제 생성된 publick key 인 id_rsa.pub 파일을 scp를 사용해 원격 서버에 전송합니다.
# scp 명령어
# scp -P {전송 받을 서버의 포트} {전송할 파일} {서버 계정}@{서버 아이피}:{전송한 파일을 저장할 경로}
C:\Users\root>scp -P 22 ./.ssh/id_rsa.pub root@127.0.231.12:.
root@127.0.231.12's password:
id_rsa.pub 100% 577 8.5KB/s 00:00
파일이 전송 된 뒤 원격 서버에 비밀번호를 사용하여 접속해서, id_rsa.pub 파일의 내용을 .ssh/authorized_keys 파일에 추가합니다.