OpenSSH в Ubuntu 16.04 показывает ключи ECDSA в необычном формате

Я пытаюсь подключиться к моему серверу по протоколу SSH, а клиент спрашивает о подлинности хоста.

ECDSA key fingerprint is SHA256:bla bla bla

В каждой версии OpenSSH, которую я использовал, ключи ECDSA (или RSA) показывались примерно так

a7:3h:75:5d:si:9v:3g...

В Ubuntu 16.04 они показывались как

c2ymd4uGIG3y34R78BcrykBVT...

У меня есть другой способ доступа к серверу, и я пытаюсь проверить отпечаток пальца, запустив ssh-keygen -lf ssh_host_ecdsa_key.pub. Но это выдает что-то вроде 2048 a7:3h:75:5d:si:9v:3g.... Даже игнорируя двоеточия, они не совпадают. Я не могу быть на 100% уверен, что это не из-за атаки MITM, но это крайне маловероятно.

Как я могу проверить подписи ключей? Все решения, которые я нашел, похоже, имеют дело с другой версией ssh-keygen, хотя я не могу понять, какая у меня версия, или какая у других.

2
задан 29 June 2016 в 01:49

2 ответа

Можно использовать ssh -o FingerprintHash=md5 user@host, чтобы использовать олдскульные хеши MD5 или сохранить это в Вашем ~/.ssh/config:

FingerprintHash md5

Вы сервер, вероятно, использует старую openssh версию, которая не поддерживает новый sha256 hashses.

0
ответ дан 29 June 2016 в 01:49
  • 1
    Я надеюсь получать последовательность на основе их идентификаторов. Я ожидаю результат как. > AB1234 ACGTAGATA > AB3456 ACGATAGAT – Manoj Kumar 15 November 2017 в 14:20

В то время как принятый ответ решает проблему того, чтобы вынуждать более новые клиенты показать хеши MD5, это конкретно не решает проблему того, чтобы вынуждать сервер показать его цифровой отпечаток с определенной хеш-функцией при вычислении цифровых отпечатков на сервер. Разъяснить, что немного, при проверке цифровых отпечатков, необходимо соответствовать одному показанному на клиенте к истинному значению на сервере. ответ @Jakuje имеет дело с тем, чтобы заставлять клиент использовать другую хеш-функцию, этот ответ соглашения с тем, чтобы заставлять сервер показать Вам хеш с помощью другой хеш-функции. Не имеет значения, изменяете ли Вы сервер или хеш-функцию клиента, именно так они - то же.

Для нахождения цифрового отпечатка хоста на том хосте выполнитесь:

# Works with the version of OpenSSH on 16.04 but not 14.04
# (on 14.04 I have OpenSSH_6.6.1p1; on 16.04 it's OpenSSH_7.2p2)
# Check your version with with `ssh -V`
cd /etc/ssh
ssh-keygen -l -E md5 -f ssh_host_ecdsa_key.pub

, Конечно, можно измениться md5 на любую поддерживаемую хеш-функцию, и Вы, возможно, должны измениться ssh_host_ecdsa_key.pub в зависимости от ключевого типа, который Вы используете (например, ssh_host_rsa_key.pub).

0
ответ дан 29 June 2016 в 01:49
  • 1
    Отредактируйте свой вопрос и покажите нам идентификационный файл и ожидаемый результат – George Udosen 15 November 2017 в 17:45

Другие вопросы по тегам:

Похожие вопросы: