OS/Linux
SSH Key 핑거프린트 확인 방법
vince joe
2022. 10. 27. 23:22
ssh-keygen으로 ssh 핑거프린트를 확인해봅시다
ssh 키 핑거프린트란?
SSH 키페어는 공개키/비밀키로 구성됩니다. 여기서 핑거프린트(fingerprint, 지문)는 공개키의 지문을 나타냅니다. 이 핑거프린트를 이용해 SSH 공개키를 검증할 수 있습니다.
SSH로 원격 호스트에 접속하려고 할 때, 호스트의 공개키 핑거프린트를 확인하고, ~/.ssh/known_hosts에 추가하게 됩니다. 이때 서버의 공개키 검증을 생략하면 중간자 공격(MITM)의 위험성이 있습니다.
ssh 키 핑거프린트 확인하기
❯ ssh-keygen -f ~/.ssh/temp
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/vince/.ssh/temp
Your public key has been saved in /Users/vince/.ssh/temp.pub
The key fingerprint is:
SHA256:CN+uGTKtgcoWk0e0pUpfx1/7GPB0EFt+2xV3XXKbhJo vince@vince-PC.local
The key's randomart image is:
+---[RSA 3072]----+
| ...ooB|
| . . .+..oB|
| . = . .+. +.|
| . + + = . E .. +|
|. = . + S = o ..|
| = + . . . + |
| = + o . + |
|.o = + . . |
|o. . o |
+----[SHA256]-----+
테스트용으로 임시 ssh key를 만들어봅시다.
잘 보면 사실 키를 생성할 때 "The key fingerprint is: ..." 하고 나옵니다.
❯ ssh-keygen -l -f temp
3072 SHA256:CN+uGTKtgcoWk0e0pUpfx1/7GPB0EFt+2xV3XXKbhJo vince@vince-PC.local (RSA)
# ssh-keygen -l [-v] [-E fingerprint_hash] [-f input_keyfile]
공개키 확인 역시 ssh-keygen으로 할 수 있습니다. -l 옵션은 지정한 공개키의 핑거프린트를 출력합니다. -f로 공개키 파일을 지정할 수 있습니다. RSA/DSA 키라면 비밀키를 지정했을 때 매칭되는 공개키를 알아서 찾습니다.
❯ ssh-keygen -l -E md5 -f temp
3072 MD5:5b:cd:80:56:6c:35:d3:ce:52:5a:af:3e:23:7b:ca:a4 vince@vince-PC.local (RSA)
-E fingerprint_hash
Specifies the hash algorithm used when displaying key fingerprints. Valid options
are: “md5” and “sha256”. The default is “sha256”.
-E로 핑거프린트 해시 알고리즘을 선택할 수 있습니다. 기본은 sha256이고, md5도 선택 가능합니다.
❯ ssh-keygen -l -f temp -v
3072 SHA256:CN+uGTKtgcoWk0e0pUpfx1/7GPB0EFt+2xV3XXKbhJo vince@vince-PC.local (RSA)
+---[RSA 3072]----+
| ...ooB|
| . . .+..oB|
| . = . .+. +.|
| . + + = . E .. +|
|. = . + S = o ..|
| = + . . . + |
| = + o . + |
|.o = + . . |
|o. . o |
+----[SHA256]-----+
-v 옵션을 추가하면 키의 아스키 아트(randomart)를 볼 수 있습니다.
반응형