2012-05-08 14:22:34 +0000 2012-05-08 14:22:34 +0000
147
147

Что такое отпечаток SSH ключа и как он генерируется?

Я всегда нахожу, что я получаю это сообщение, когда я ssh в новую машину:

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

Что это значит? Будет ли каждый раз на каждой машине один и тот же отпечаток пальца?

Как генерируются эти отпечатки пальцев? От каких параметров они зависят?

Ответы (5)

128
128
128
2012-07-24 16:26:09 +0000

Вы можете сгенерировать отпечатки пальцев для открытого ключа, используя 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) - отпечаток открытого ключа, а третья часть - расположение самого файла с открытым ключом.

В более новых версиях OpenSSH вместо шестнадцатеричного MD5 отображается кодированный в Base64 SHA-256. Чтобы показать хэш в стиле наследия, используйте

$ ssh-keygen -l -E md5 -f ~/.ssh/id_rsa.pub
```.
74
74
74
2014-02-08 20:40:35 +0000
69
69
69
2012-05-08 14:41:50 +0000
23
23
23
2019-03-29 21:52:44 +0000

Если вы хотите проверить файл ключа SSH, чтобы узнать, совпадает ли он с тем, что было сообщено github как “Deploy key”, это для вас…

С частного адреса: _COPY15<username>/<repo_name>/настройки/ключи вы увидите

На терминале:

$ 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, которая заключается в том, что они публично обслуживают SSH-доступные ключи пользователей по адресу _COPY15<username>.keys

. Вот один лайнер, который вы можете использовать, чтобы воспользоваться им.

$ 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
1
1
1
2017-11-26 04:32:06 +0000
ssh-keygen -r host.name.com

Будет выдавать отпечатки пальцев для всех настроенных публичных ключей на экземпляре sshd.

Их можно поместить в записи DNS SSHFP .

Похожие вопросы

19
12
16
13
8