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

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

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

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

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

14
задан Der Hochstapler
28.03.2023 2:52 Количество просмотров материала 2360
Распечатать страницу

4 ответа

отпечатков пальцев на основе открытого ключа узла, как правило, основаны на "/и т. д./по ssh/ssh_host_rsa_key.паб" Вообще СВО для легких идентификации / проверки хозяина вы соединяетесь к.

Если фингерпринт изменяет, то машина вы соединяетесь к изменяла их открытый ключ. Это не может быть плохо (происходит от переустановки 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

46
отвечен madmaze 2023-03-29 10:40

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

79
отвечен Benjamin Oakes 2023-03-29 12:57

отпечаток является 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
57
отвечен andrew.n 2023-03-29 15:14
ssh-keygen -r host.name.com

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

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

0
отвечен Mike Schroll 2023-03-29 17:31

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх