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

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

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

Отпечаток пальца – 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 [email protected] The key's randomart image is: +--[ RSA 2048]----+ | +*..+* | | =. +.= | | . . .o . | | o+ E | | S= . + o | | . oo + | | . . | | | | | +-----------------+ $ cat foo.pub ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDEbKq5U57fhzQ3SBbs3NVmgY2ouYZfPhc6cXBNEFpRT3T100fnbkYw+EHi76nwsp+uGxk08kh4GG881DrgotptrJj2dJxXpWp/SFdVu5S9fFU6l6dCTC9IBYYCCV8PvXbBZ3oDZyyyJT7/vXSaUdbk3x9MeNlYrgItm2KY6MdHYEg8R994Sspn1sE4Ydey5DfG/WNWVrzFCI0sWI3yj4zuCcUXFz9sEG8fIYikD9rNuohiMenWjkj6oLTwZGVW2q4wRL0051XBkmfnPD/H6gqOML9MbZQ8D6/+az0yF9oD61SkifhBNBRRNaIab/Np7XD61siR8zNMG/vCKjFGICnp [email protected] $ echo 'AAAAB3NzaC1yc2EAAAADAQABAAABAQDEbKq5U57fhzQ3SBbs3NVmgY2ouYZfPhc6cXBNEFpRT3T100fnbkYw+EHi76nwsp+uGxk08kh4GG881DrgotptrJj2dJxXpWp/SFdVu5S9fFU6l6dCTC9IBYYCCV8PvXbBZ3oDZyyyJT7/vXSaUdbk3x9MeNlYrgItm2KY6MdHYEg8R994Sspn1sE4Ydey5DfG/WNWVrzFCI0sWI3yj4zuCcUXFz9sEG8fIYikD9rNuohiMenWjkj6oLTwZGVW2q4wRL0051XBkmfnPD/H6gqOML9MbZQ8D6/+az0yF9oD61SkifhBNBRRNaIab/Np7XD61siR8zNMG/vCKjFGICnp' \ | base64 -D | md5 6530389635564f6464e8e3a47d593e19 

Md5sum 6530389635564f6464e8e3a47d593e19 – это отпечаток пальца, отображаемый при генерации ключа, только без разделяющих двоеточий.


Однако, если вы имеете дело с отпечатками пальцев, которые Amazon показывает в консоли EC2 Key Pairs, к сожалению, это может быть другой зверь . Если это 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 
  • Rsyncing каталогов через ssh туннель
  • Linux: Постоянно синхронизировать файлы, в одну сторону
  • Как заставить клавиши HOME или END работать в mc, работающем на OS X (ssh)
  • Мульти-хост SSH-соединение
  • Передача файлов по сеансу SSH через два хоста
  • Можно ли заставить SSH передавать пустые аргументы?
  • Не удается войти с PuTTY в RasPi 3 + OSMC
  • Нажатие моей подсказки PS1 по ssh
  • Rsync: не удалось установить время на "<dir path>"
  • Как работают такие программы, как гитолит?
  • HTTP-прокси через ssh?
  • Давайте будем гением компьютера.