잘못된 정보가 있다면, 꼭 댓글로 알려주세요(비로그인 익명도 가능).
여러분의 피드백이 저와 방문자 모두를 올바른 정보로 인도할 수 있습니다.
감사합니다. -현록
현록의 기록저장소
ssh-keygen 명령어로 SSH키 쌍 생성 본문
[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이므로,
리눅스 명령어 >로 파일로 출력해서 사용한다.
잘못된 정보가 있다면, 꼭 댓글로 알려주세요(비로그인 익명도 가능).
여러분의 피드백이 저와 방문자 모두를 올바른 정보로 인도할 수 있습니다.
감사합니다. -현록