Для того, чтобы проверить достоверность ключа сервера пользователь может связаться с администратором сервера по доверенному каналу и запросить хэш ключа.
Команда вычисления хэша:ssh-keygen -l -f имя_файла
Можно передавать как имя файла секретного ключа, так и имя файла публичного ключа. В любом случае будет выдан хэш от публичного ключа. Например: ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key
. Если в файле много ключей (например в ~/.ssh/authorized_keys
), то ssh-keygen
посчитает все хэши.
В зависимости от версии OpenSSH хэш может считаться по алгоритму MD5 и выдаваться в восьмеричной записи (старые версии), либо считаться по алгоритму SHA256 и выдаваться в кодировке BASE64 (новые версии). Для того, чтобы новая версия ssh-keygen
выдала хэш в старом формате необходимо добавить опцию -E md5
. Дополнительная опция -v
генерирует представление хэша в ASCII-арт.
Примеры:
#Старая версия
ssh-keygen -l -f ~/.ssh/id_rsa
2048 19:c3:6f:d8:48:88:5d:97:44:56:3e:75:5e:e0:f5:fa /home/user/.ssh/id_rsa.pub (RSA)
#Новая версия
ssh-keygen -l -f ~/.ssh/id_rsa
3072 SHA256:6jpGLR7o7uutwXjYzIJE/6eQK9rMbwmjSU+BPEMBlnk user@example.com (RSA)
ssh-keygen -l -E md5 -v-f ~/.ssh/id_rsa
3072 MD5:00:a6:22:39:bb:20:77:de:03:2a:fd:ad:79:f0:53:7f user@example.com (RSA)
+---[RSA 3072]----+
| o |
| . o . |
|= . . |
|.+ . |
|+ . o S |
|o+ +.o . |
|o o .oo. . |
| . . o+. . E |
| +o.. . |
+------[MD5]------+