ssh
Я всегда замечаю, что, когда беру новую машину, получаю следующее сообщение :
12:f8:7e:78:61:b4:bf:e2:de:24:15:96:4e:d4:72:53
Что это значит? Будет ли у каждой машины каждый раз один и тот же отпечаток пальца?
Как генерируются эти отпечатки пальцев? От каких параметров они зависят?
решение1
Отпечаток пальца основан на открытом ключе хоста, обычно на файле /etc/ssh/ssh_host_rsa_key.pub
. Обычно это для легкой идентификации/проверки хоста, к которому вы подключаетесь.
Если отпечаток пальца изменился, машина, к которой вы подключаетесь, сменила свой открытый ключ. Это может быть не так уж и плохо (это происходит из-за переустановки ssh), но это также может означать, что вы подключаетесь к другой машине в том же домене/IP (это происходит, когда вы подключаетесь через что-то вроде балансировщика нагрузки) или что вы стали целью атаки типа «человек посередине», когда злоумышленник каким-то образом перехватывает/перенаправляет ваше ssh-подключение для подключения к другому хосту, который может шпионить за вашим именем пользователя/паролем.
Нижняя граница:Если вы получили предупреждение об изменении отпечатка пальца, будьте осторожны и дважды проверьте, что вы действительно подключаетесь к правильному хосту через безопасное соединение. Хотя в большинстве случаев это безвредно, это может быть признаком потенциальной проблемы.
Видеть:http://www.lysium.de/blog/index.php?/archives/186-How-to-get-ssh-server-fingerprint-information.html
и:http://en.wikipedia.org/wiki/Отпечаток_отпечатка_пальца_публичного_ключа
решение2
Вы можете сгенерировать отпечаток для открытого ключа следующим 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 отображается SHA-256 в кодировке Base64. Чтобы показать хэш в устаревшем стиле, используйте
$ ssh-keygen -l -E md5 -f ~/.ssh/id_rsa.pub
решение3
Отпечаток представляет собой 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
Сумма md5 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
решение4
Для проверки отпечатка, присутствующего в Azure Devops, вы можете использовать
$ ssh-keygen -E md5 -lf .ssh/id_rsa.pub
2048 MD5:ba:42:24:87:d6:7b:71:a2:3e:b5:9a:31:b2:2c:e0:00 CrazyGirrafe@Australasia (RSA)