잘못된 정보가 있다면, 꼭 댓글로 알려주세요(비로그인 익명도 가능).

여러분의 피드백이 저와 방문자 모두를 올바른 정보로 인도할 수 있습니다.

감사합니다. -현록

후원해주실 분은 여기로→

현록의 기록저장소

ssh-keygen 명령어로 SSH키 쌍 생성 본문

Study/기타

ssh-keygen 명령어로 SSH키 쌍 생성

현록 2022. 7. 31. 11:13

[SSH 접속과 키 쌍]

[옵션 확인]

[옵션 없이 사용]

[옵션 사용]

[키 파일로부터 정보 확인]

[public key 복구]

 

 


[SSH 접속과 키 쌍]

 

SSH에서

private key는 권한자를 의미하고,

public key는 해당 권한자에게 허용하겠다는 의미이다.

 

SSH Host에서는 authorized_key 리스트에 public key들을 수록하여,

해당 public key와 쌍을 이루는 private key를 가진 권한자에게 접속을 허용하기로 한다.

Client에서는 private key를 이용하여 Host에 접속한다.

 

ㆍHost: public key 보유

ㆍClient: private key 사용

 

 


[옵션 확인]

 

% ssh-keygen --help_

로 옵션을 확인하면 된다. (https://www.freebsd.org/cgi/man.cgi?query=ssh-keygen)

 

 


[옵션 없이 사용]

 

% ssh-keygen_

Generating public/private rsa key pair.

Enter file in which to save the key (/Users/blackdeer/.ssh/id_rsa): /Users/blackdeer/.ssh/test01_

Enter passphrase (empty for no passphrase): 숨겨진입력_

Enter same passphrase again: 숨겨진입력_

Your identification has been saved in /Users/blackdeer/.ssh/test01

Your public key has been saved in /Users/blackdeer/.ssh/test01.pub

The key fingerprint is:

SHA256:avOfU8xcBulhus7IR9wD25S4oDikFF17S5gm23ZFu04 blackdeer@Mac.local

The key's randomart image is:

+---[RSA 3072]----+

|   . ..   .  .   |

|  . .  + . .=    |

|   .. = o o= +   |

|  . .= o.o+.+ o  |

| . o..o.SoE% o   |

|  . o..o o* O    |

|     .+. =.. .   |

|     . oo =.     |

|        .oo.     |

+----[SHA256]-----+

-t 타입 옵션으로 타입을 지정해주지 않으면, 기본적으로 RSA방식의 키를 생성한다.

-b 길이 옵션으로 길이를 지정해주지 않으면, 기본적으로 3072 Bits의 키를 생성한다. (2022년 07월 기준)

 (※ NIST에서 권장하는 길이 - 2002년: 1024 Bits, 2015년: 2048 Bits, ...)

-f 저장경로 옵션으로 파일 생성 위치를 지정하지 않으면,

 처음 질문으로 파일 생성 위치를 묻는다.

 이 때는 ~(/Users/로그온한사용자)의 단축 형식이 통하지 않으니, 절대경로로 적어준다.

-N 암호 옵션으로 암호(passphrase)를 지정하지 않으면, 키 생성시 사용할 암호를 물어본다. (Enter passphrase)

 암호를 입력하면, 키를 사용할 때마다 해당 암호를 입력해야 한다.

 그냥 빈 칸으로 입력하면 암호를 사용하지 않는다.

-E 지문해시유형 옵션으로 지문 생성의 해시 유형을 지정하지 않으면,

 기본적으로 SHA256으로 생성한다. -E sha256, -E md5로 지정 가능하다.

-C 코멘트 옵션으로 코멘트를 지정할 수 있다.

 지정하지 않으면, 로그온한 사용자명 등이 기본으로 들어간다.

ㆍ키는 private key, public key 쌍으로 생성되며, public key의 뒤에는 .pub이 붙는다.

 

 


[옵션 사용]

 

% ssh-keygen -t rsa -b 4096 -f ~/.ssh/test02 -C "코멘트: 예시를 위해 생성" -N ""_

Generating public/private rsa key pair.

Your identification has been saved in /Users/blackdeer/.ssh/test02

Your public key has been saved in /Users/blackdeer/.ssh/test02.pub

The key fingerprint is:

SHA256:RqvdvvVWdpZJyygyLocNj8TgakvTnaqcKpDrduzB6Co 코멘트: 예시를 위해 생성

The key's randomart image is:

+---[RSA 4096]----+

|                 |

|                 |

|        .        |

|     . . .     . |

| .  . o S     + +|

|o o ...B.+ . . ==|

|.o.=..ooO + o  +.|

|E.o=+ .+ * . ..  |

|B+=*o.  o o. ..  |

+----[SHA256]-----+

옵션들을 지정해서 별다른 대화문 없이 생성했다.

(옵션들의 설명은 위의 [옵션 없이 사용] 참고)

 

 


[키 파일로부터 정보 확인]

 

% ssh-keygen -l -f ~/.ssh/test02_

4096 SHA256:RqvdvvVWdpZJyygyLocNj8TgakvTnaqcKpDrduzB6Co 코멘트: 예시를 위해 생성 (RSA)

-l 옵션으로

 ㆍ키의 암호화 방식(위의 예시에선 (RSA))

 ㆍ키의 Bits 길이(위의 예시에선 4096)

 ㆍ지문의 해시 유형(위의 예시에선 SHA256)

 ㆍ지문(위의 예시에선 RqvdvvVWdpZJyygyLocNj8TgakvTnaqcKpDrduzB6Co)

 ㆍ코멘트(위의 예시에선 "코멘트: 예시를 위해 생성")

 를 확인할 수 있다.

 

 


[public key 복구]

 

public key로 private key를 알아낼 순 없지만(비대칭 키 암호화의 의의),

private key로 public key는 언제든 복구할 수 있다.

% ssh-keygen -y -f ~/.ssh/test02_

Enter passphrase: 숨겨진입력_

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDGMOjJebCj8EGU2CFbO68ufFg0CP4iAVwR55AOSBt6gEgkixIoD9pw7qhcb0wTMtn2EzF/F7LCXD9ElT2Q9Bg4WlH02RBkMpzgTSFdO54dSCi3BO45RTMwW0HJDX5pFLANdRwpbbShg8blclQZSNANZQwt8cTnIWRswgerVlCclsMnkYJvFf2BCaXO/uZuUGEh/0vADqSPGb1XeHFPS+Qg4NPBjYOEuTz4btvPARgE0YbYF6cPbUXHWn8QEdUE/T/0SY7Z0V5ueJl78PqLkn+tdaTG7tZnEORaNVkYMSxLtLeLMDTWcBInj74C+5wjzZMtYj+xDy2377cTQyW1jlZ1en4S2rxMvX0BZcOpTknp20bcbj6zyAQISw+Ol+YcfJsFXebiAMsG6/2zhAHF1A2wkOtOUd2E9MzGQZ2P2EM+CnkxDptFXe7Mz4aIr0SSeIeJoq5x32mp1WGBPt2Uzfjrh826EBn2dW2bx3pQsfm8tBluegbqvc2ImKZGbPKgOntBVTPQWsBF6yuCypVV6wFgHUvxMk0cu62N+KdDuueZVEWmROACapXisgAbd6WNg6WXlu6mni+SOeNfruBZDFnDonLwU6AyKDshn0Xdj2e8z8GBzjY27PvRkmXlvq3SYa/Ab0zEmkAl06dTlettjNl9hay4P6+0NZnSBuGyw4W9Aw== 코멘트: 예시를 위해 생성

(만약 키 생성시 암호(passphrase)를 지정했다면, 암호를 입력해야한다.)

 

% ssh-keygen -y -f ~/.ssh/test02 > ~/.ssh/test02.pub_

-y 옵션의 출력은 기본적으로 stdout이므로,

리눅스 명령어 >로 파일로 출력해서 사용한다.

 

 

'Study > 기타' 카테고리의 다른 글

링크  (0) 2019.05.07
Comments

잘못된 정보가 있다면, 꼭 댓글로 알려주세요(비로그인 익명도 가능).

여러분의 피드백이 저와 방문자 모두를 올바른 정보로 인도할 수 있습니다.

감사합니다. -현록

후원해주실 분은 여기로→