Кажется, что openssh изменил способ отображения ключевых отпечатков пальцев.
Я пытаюсь SSH с клиентского компьютера на сервер:
- клиент: Ubuntu 14.04 под управлением OpenSSH 6.6.1
- сервер: FreeBSD под управлением OpenSSH 7.2p2.
Клиент сообщает md5-хэш ключа сервера как последовательность из 16 пар шестнадцатеричных цифр, например:
a7:b1:3e:3d:84:24:a2:5a:91:5f:6f:e9:cf:dd:2b:6a
По умолчанию сервер использует хеш sha256, но благодаря этому ответу я могу заставить его выдать хеш sha1, выполнив:
[root@host /etc/ssh]# ssh-keygen -l -E sha1 -f ssh_host_ecdsa_key.pub
Я хочу, чтобы результат выглядел так:
a7:b1:3e:3d:84:24:a2:5a:91:5f:6f:e9:cf:dd:2b:6a
но вместо этого я получаю это:
256 SHA1:KIh0ejR4O+RqrSq7JdGAASddRfI root@host.local (ECDSA)
Мне кажется, что теперь вместо шестнадцатеричных цифр отображается версия отпечатка пальца в кодировке base64.
Как я могу получить контрольную сумму ключа сервера в том же формате, который сообщал (более старый) клиент (шестнадцатеричные цифры, разделенные двоеточиями, хэш sha1), чтобы проверить, что они совпадают?
РЕДАКТИРОВАТЬ: старая версия SSH дает контрольную сумму md5 , а не контрольную сумму sha1, как я ошибочно думал. Использование этой контрольной суммы (как должен указывать принятый сейчас ответ) в опции -E дает желаемый результат.
sha1
вместоmd5
! У меня устаревшая версия Ubuntu с openssh-6.9, но она работает просто отлично.Оказывается, в SSH Cookbook есть способ генерировать ключи в старом шестнадцатеричном формате вручную. Я использовал это на сервере freebsd.
Разбивая это:
распечатать второй (разделенный пробелами) столбец в «key.pub», который является самим ключом
ключ в кодировке base64. Это выведет фактические байты ключа
это эквивалент freebsd для 'md5sum -b', который был указан в рецепте на странице ssh cookbook
Здесь есть две команды sed:
замените каждую пару символов в строке (благодаря флагу «g» в конце) на ту же пару, за которой следует двоеточие
удалите все конечные двоеточия (замените двоеточие, за которым следует пробел, за которым следует что-нибудь до конца строки, но ничего).
источник
В подобных случаях я использую следующий небольшой скрипт (протестирован на Debian и Ubuntu):
Пример использования:
источник