All about

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 파일에 추가합니다.

 

root@root:~$ cat id_rsa.pub >> .ssh/authorized_keys

 

이제 ssh 에 -i 옵션을 사용하여 인증키 파일을 불러와 접속하면 비밀번호를 요구하지 않습니다.(설정이 어디선가 꼬인 경우 여전히 비밀번호를 요구하는 경우가 있는데 그런 경우는 링크를 참조해주세요.)

 

# ssh 명령어
# ssh -i {private key file path} -p {remote server port} {user id}@{remote server ip}
C:\Users\root>ssh -i ./.ssh/id_rsa -p 22 root@127.6.22.143

 

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading