105

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

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

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

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

4 ответа4

83

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

62

Отпечаток пальца - это MD5 поверх двоичных данных в открытом ключе в кодировке Base64.

$ 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-значная шестнадцатеричная строка, это стандартный отпечаток открытого ключа MD5 SSH, указанный выше. Но если это 40 шестнадцатеричных цифр, это на самом деле отпечаток пальца, вычисленный путем взятия 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
54

Отпечаток пальца основан на открытом ключе хоста, как правило, на основе "/etc/ssh/ssh_host_rsa_key.pub". Обычно он используется для простой идентификации / проверки хоста, к которому вы подключаетесь.

Если отпечаток пальца изменяется, компьютер, к которому вы подключаетесь, изменил свой открытый ключ. Это может быть не плохо (происходит после переустановки ssh), но это также может указывать на то, что вы подключаетесь к другому компьютеру с тем же доменом /IP (происходит, когда вы подключаетесь через что-то вроде балансировщика нагрузки) или что вы подвергаются атаке «человек посередине», когда злоумышленник каким-то образом перехватывает / перенаправляет ваше ssh-соединение для подключения к другому хосту, который может отслеживать вашего пользователя / pw.

Итог: если вас предупреждают об изменении отпечатка пальца, будьте осторожны и дважды проверьте, действительно ли вы подключаетесь к правильному хосту через безопасное соединение. Хотя в большинстве случаев это безвредно, это может быть признаком потенциальной проблемы.

См .: 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

0
ssh-keygen -r host.name.com

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

Затем они могут быть помещены в записи DNS SSHFP .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .