3

Клиент ssh спрашивает меня, в порядке ли отпечаток нового сервера. Этот отпечаток пальца - sha256.

Сервер ssh может сказать мне свой отпечаток

ssh-keygen -l -f /etc/ssh/ssh_host_ecdsa_key

Однако это в формате MD5.

В документации по ssh-keygen сказано, что это исправление

ssh-keygen -l -E sha256 -f /etc/ssh/ssh_host_ecdsa_key

Однако опция -E не доступна в CentOS. Я могу компенсировать клиенту

ssh -o FingerprintHash=md5 user@newserver

Однако хорошая практика диктует, что мы отказываемся от md5, и это упростило бы автоматизацию и рабочий процесс (тестирование в нескольких средах / распределениях), если бы я мог справиться с этим единообразно.

Как я могу получить отпечаток пальца sha256 ключа ssh на CentOS?

1 ответ1

4

Версия OpenSSH, упакованная CentOS , слишком устарела для этой функции.

Альтернативой является прямое использование sha256sum , так как «fingerprint» - это просто хэш необработанного ключа:

awk '{print $2}' foo.pub | base64 -d | sha256sum | xxd -p -r | base64

Хеш MD5 может быть получен с помощью:

awk '{print $2}' foo.pub | base64 -d | md5sum

Или вы можете пропустить весь шаг «Отпечаток пальца» и «Подтверждение вручную» и просто скопировать фактический открытый ключ в ваши ~/.ssh/known_hosts . (Не забудьте добавить IP-адрес перед ним).

echo "192.168.1.2 $(cat foo.pub)" >> ~/.ssh/known_hosts

Таким образом, ключ будет предварительно проверен, так сказать. Кажется, это простой метод автоматизации.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .