정보/프로그래밍

SSH Key (id_rsa.pub)생성하기, Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password) 리눅스 ssh 접근 권한 오류 ssh-keygen id_rsa

아로구스 2021. 5. 11. 17:29

$ ssh-keygen 
usage: ssh-keygen [-q] [-b bits] [-t dsa | ecdsa | ed25519 | rsa | rsa1]
                  [-N new_passphrase] [-C comment] [-f output_keyfile]
       ssh-keygen -p [-P old_passphrase] [-N new_passphrase] [-f keyfile]
       ssh-keygen -i [-m key_format] [-f input_keyfile]
       ssh-keygen -e [-m key_format] [-f input_keyfile]
       ssh-keygen -y [-f input_keyfile]
       ssh-keygen -c [-P passphrase] [-C comment] [-f keyfile]
       ssh-keygen -l [-v] [-E fingerprint_hash] [-f input_keyfile]
       ssh-keygen -B [-f input_keyfile]
       ssh-keygen -D pkcs11
       ssh-keygen -F hostname [-f known_hosts_file] [-l]
       ssh-keygen -H [-f known_hosts_file]
       ssh-keygen -R hostname [-f known_hosts_file]
       ssh-keygen -r hostname [-f input_keyfile] [-g]
       ssh-keygen -G output_file [-v] [-b bits] [-M memory] [-S start_point]
       ssh-keygen -T output_file -f input_file [-v] [-a rounds] [-J num_lines]
                  [-j start_line] [-K checkpt] [-W generator]
       ssh-keygen -s ca_key -I certificate_identity [-h] [-n principals]
                  [-O option] [-V validity_interval] [-z serial_number] file ...
       ssh-keygen -L [-f input_keyfile]
       ssh-keygen -A
       ssh-keygen -k -f krl_file [-u] [-s ca_public] [-z version_number]
                  file ...
       ssh-keygen -Q -f krl_file file ...
~/.ssh$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home1/irteam/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home1/irteam/.ssh/id_rsa.
Your public key has been saved in /home1/irteam/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:{xxxxxxxxxxxxxxxxxxx/XXXXXXXXXXXXXXXXXXXXXXX} {user}@{hostname}
The key's randomart image is:
+---[RSA 2048]----+
|          ..     |
|     o o .o      |
|    o * * .o     |
|.  = * B =  .    |
|= . * *.So . .   |
|o+ . + += E o .  |
|  = o +. .   o . |
|   o Xo       .  |
|    +o=o         |
+----[SHA256]-----+
~/.ssh$ ll

A호스트(client)에서 B호스트(server)로 ssh 명령을 이용해서 접속하거나 명령을 수행해야 하는 경우가 많이 있습니다. 이 때 아래와 같이 접근 권한이 없다는 오류가 발생 할 때가 있는데요. 간단히 해결할 수 있습니다.

 

Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password) 

 

기본 컨셉은 클라이언트A 의 key정보를 접속하려는 서버B쪽에 알려줘서 미리 등록을 해두면

클라이언트A에서 서버B로 접속할 때 이미 등록된 key가 있으니 접속을 허용해주는 것입니다.

등록을 위한 이 키를 만들어내는 것이 필요한데 이 때 필요한 명령어는 ssh-keygen 입니다. 아래 단계별로 보기 쉽게 정리 했습니다.

 

1. clientA ~/.ssh 에서 아래 명령어 수행합니다. (공개키 생성)

ssh-keygen -t rsa

Enter file in which to save the key (/home1/irteam/.ssh/id_rsa):  [엔터]
Enter passphrase (empty for no passphrase): [엔터]
Enter same passphrase again: [엔터]

 

2. id_rsa(개인키), id_rsa.pub(공개키) 생성 확인합니다.

3. id_rsa.pub(공개키) 내용을 복사하여

4. serverB호스트의 ~/.ssh에서 authorized_keys 파일에 위 공개키 내용 추가 해줍니다.

 

반응형