SSH 키 지문이란 무엇이며 어떻게 생성됩니까? . 12:f8:7e:78:61:b4:bf:e2:de:24:15:96:4e:d4:72:53 그것은 무엇을 의미합니까? 매번 모든 머신에 동일한

ssh새 컴퓨터에 접속할 때 항상이 메시지가 나타납니다 .

12:f8:7e:78:61:b4:bf:e2:de:24:15:96:4e:d4:72:53

그것은 무엇을 의미합니까? 매번 모든 머신에 동일한 지문이 있습니까?

이 지문은 어떻게 생성됩니까? 어떤 매개 변수에 의존합니까?



답변

지문은 호스트의 공개 키를 기반으로하며 일반적으로 “/etc/ssh/ssh_host_rsa_key.pub”를 ​​기반으로합니다. 일반적으로 연결중인 호스트를 쉽게 식별 / 확인할 수 있습니다.

지문이 변경되면 연결하려는 기기가 공개 키를 변경 한 것입니다. 이것은 나쁜 일이 아닐 수도 있지만 (ssh를 다시 설치하여 발생할 수 있음) 동일한 도메인 / IP에서 다른 시스템에 연결 중이거나 (로드 밸런서와 같은 것을 통해 연결하는 경우 발생할 수 있음) 또는 공격자가 사용자 / 암호를 스누핑 할 수있는 다른 호스트에 연결하기 위해 ssh 연결을 가로 채거나 다시 라우팅하는 중간자 (man-in-the-middle) 공격의 대상이되고 있습니다.

결론 : 변경된 지문이 경고되면 보안 연결을 통해 올바른 호스트에 실제로 연결되어 있는지 신중하게 확인하십시오. 대부분의 경우 이것이 무해하지만 잠재적 인 문제를 나타낼 수 있습니다.

참조 : http://www.lysium.de/blog/index.php?/archives/186-How-to-get-ssh-server-fingerprint-information.html
http://en.wikipedia.org/ wiki / Public_key_fingerprint


답변

다음을 사용하여 공개 키에 대한 지문을 생성 할 수 있습니다 ssh-keygen.

ssh-keygen -lf /path/to/key.pub

구체적인 예 (RSA 공개 키를 사용하는 경우) :

$ ssh-keygen -lf ~/.ssh/id_rsa.pub
2048 00:11:22:33:44:55:66:77:88:99:aa:bb:cc:dd:ee:ff /Users/username/.ssh/id_rsa.pub (RSA)

첫 번째 부분 (2048)은 키 길이 (비트)이고 두 번째 부분 (00:11:22:33:44:55:66:77:88:99:aa:bb:cc:dd:ee:ff)은 공개 키의 지문이고 세 번째 부분은 공개 키 파일 자체의 위치입니다.


답변

지문은 Base64로 인코딩 된 공개 키 내의 이진 데이터에 대한 MD5입니다.

$ ssh-keygen -f foo
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in foo.
Your public key has been saved in foo.pub.
The key fingerprint is:
65:30:38:96:35:56:4f:64:64:e8:e3:a4:7d:59:3e:19 andrew@localhost
The key's randomart image is:
+--[ RSA 2048]----+
|       +*..+*    |
|      =. +.=     |
|     . . .o .    |
|         o+   E  |
|        S= . + o |
|        . o o +  |
|           .   . |
|                 |
|                 |
+-----------------+
$ cat foo.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDEbKq5U57fhzQ3SBbs3NVmgY2ouYZfPhc6cXBNEFpRT3T100fnbkYw+EHi76nwsp+uGxk08kh4GG881DrgotptrJj2dJxXpWp/SFdVu5S9fFU6l6dCTC9IBYYCCV8PvXbBZ3oDZyyyJT7/vXSaUdbk3x9MeNlYrgItm2KY6MdHYEg8R994Sspn1sE4Ydey5DfG/WNWVrzFCI0sWI3yj4zuCcUXFz9sEG8fIYikD9rNuohiMenWjkj6oLTwZGVW2q4wRL0051XBkmfnPD/H6gqOML9MbZQ8D6/+az0yF9oD61SkifhBNBRRNaIab/Np7XD61siR8zNMG/vCKjFGICnp andrew@localhost
$ echo 'AAAAB3NzaC1yc2EAAAADAQABAAABAQDEbKq5U57fhzQ3SBbs3NVmgY2ouYZfPhc6cXBNEFpRT3T100fnbkYw+EHi76nwsp+uGxk08kh4GG881DrgotptrJj2dJxXpWp/SFdVu5S9fFU6l6dCTC9IBYYCCV8PvXbBZ3oDZyyyJT7/vXSaUdbk3x9MeNlYrgItm2KY6MdHYEg8R994Sspn1sE4Ydey5DfG/WNWVrzFCI0sWI3yj4zuCcUXFz9sEG8fIYikD9rNuohiMenWjkj6oLTwZGVW2q4wRL0051XBkmfnPD/H6gqOML9MbZQ8D6/+az0yF9oD61SkifhBNBRRNaIab/Np7XD61siR8zNMG/vCKjFGICnp' \
    | base64 -D | md5
6530389635564f6464e8e3a47d593e19

md5sum 6530389635564f6464e8e3a47d593e19는 분리 콜론없이 키가 생성 될 때 표시되는 지문입니다.


그러나 Amazon이 EC2 키 페어 콘솔에 표시하는 지문을 다루는 경우
불행히도 다른 짐승 일 수 있습니다 . 32 자리 16 진 문자열 인 경우 위의 표준 MD5 SSH 공개 키 지문입니다. 그러나 40 자리 16 진수 인 경우 실제로 개인 키 의 SHA1을 PKCS # 8 형식 으로 가져 와서 계산 한 지문 입니다.

$ openssl pkcs8 -in foo -nocrypt -topk8 -outform DER | openssl sha1 -c
e2:77:39:d3:53:a7:62:68:5f:da:82:0e:99:61:30:64:a2:88:c4:58

답변

SSH 키 파일을 확인하여 github에서 “배포 키”로보고 된 것과 동일한 지 확인하려는 경우 이는 사용자를위한 것입니다.

비공개 URL에서 : https://github.com/<username>/<repo_name>/settings/keys

터미널에서 :

$ ls -l id*
-rw-------  1 bruno  staff  1675 Mar 29 17:03 id_rsa
-rw-r--r--  1 bruno  staff   416 Mar 29 17:03 id_rsa.pub

$ ssh-keygen -E md5 -lf id_rsa
2048 MD5:07:b4:00:a4:65:ef:44:89:05:84:60:0c:c9:b2:36:5e ec2-user@ip-10-2-1-16.ec2.internal (RSA)

$ ssh-keygen -E md5 -lf id_rsa.pub
2048 MD5:07:b4:00:a4:65:ef:44:89:05:84:60:0c:c9:b2:36:5e ec2-user@ip-10-2-1-16.ec2.internal (RSA)

개인 키와 공개 키 모두에 대해 동일한 지문이 표시됩니다.

동일한 명령을 GitHub의 깔끔한 기능과 결합 할 수 있습니다. 이는 https://github.com/<username>.keys에서 사용자의 SSH 공개 키를 공개적으로 제공한다는 사실입니다.

여기에 그것을 사용할 수있는 하나의 라이너가 있습니다.

$ curl -sL https://github.com/RichardBronosky.keys | while read; do echo -e "\nkey #$((++i)):"; ssh-keygen -E md5 -lf - <<<"$REPLY"; echo $REPLY; done

key #1:
2048 MD5:07:b4:00:a4:65:ef:44:89:05:84:60:0c:c9:b2:36:5e no comment (RSA)
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDJGT35gvsFveu+80qgurrLHId0h55E9jliM7Fo0mV9b7eg3EfyagkAcJUSMFkoov3HY4CW0yzOc7WlN57ABwvpRz1ioFDex0n0FkjoSEs5ROeT1OneRK6Bf6XnplgPuQ/LSSkv3kmK6I29R+YWi6TjDvLLoA5BrXJjOMfUv36jxWCDtk/5ZdhMZqhsMuDm06Jg5JBu6n5jQaZkmaIaunz7vOfwVG9LoCI+MYyIdo2S4VTva7Ee7jfAvgSUUgHTjhzsPO0/Ww5a/Kz2ehXW27aJxj/QPLfYR2LmTMbQKm3WpB8P1LjoiU7zjPoVoZ43a4P2JLUDidGKCd3eY5b5xewz

key #2:
2048 MD5:f7:98:f1:0b:73:c6:2a:21:00:7a:70:1d:0f:cf:d8:cc no comment (RSA)
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCQsZrjwKjB4WnE4SwVdDX5eEMxKzPHFBVKKpo9vvWUXRQwdTZy6iVOkyF26IPR+xDPzslzXOClKXUrWEh6La/EMpRwuMrWAbMIJFeDHOb56q4azgopoJmMJHo0yxGu0Ts4XszMACYRhlG6uK2AP5SYiOTp1zKPFjazXAdwLXyOvJurzy6KKuGJdSs/sj9+4uehgyRNOhehCSfg71tJJYwRvO2DDfLgaVEKOgZx58gEnJfhhz9D7rbvdZNhw/hCgtVNJaQF9Mdke2OPwWSo8i0/XNb9Bu/GRXqwMZrxDBhyzieocW40cwuzxWfzoi03aISdtQ1HtawH8+/sswviM1+B

답변

ssh-keygen -r host.name.com

sshd 인스턴스에서 구성된 모든 공개 키의 지문을 출력합니다.

그런 다음 DNS SSHFP 레코드에 넣을 수 있습니다 .