Когда я создаю новый экземпляр EC2 под управлением Ubuntu 18.04, используя новую пару ключей, сгенерированную EC2, я конвертирую полученный .pem в .ppk с помощью puttygen, затем пытаюсь подключиться к экземпляру с помощью PuTTY, и мне отображается ожидаемое приглашение для подтверждения отпечаток SSH:
PuTTY показывает мне шестнадцатеричное представление хеша MD5. Это единственный формат отпечатка пальца, который поддерживает PuTTY.
За пределами PuTTY, предпочтительного формата отпечатков пальцев в наши дни представляет собой хэш SHA256, представленный в Base64.
Если я посмотрю в системный журнал EC2 только что созданного экземпляра, я точно вижу отпечатки SSH, SHA256 в представлении Base64:
Смотря на этот ответ, Amazon Linux раньше (а может быть, до сих пор?) Выводил хеш в шестнадцатеричном формате, а не в Base64.
Как я могу убедиться, что отпечаток Base64 SHA256, показанный в системном журнале EC2, совпадает с тем, к чему подключается PuTTY? Я бы предпочел не устанавливать инструменты, специфичные для EC2.
Между прочим, у меня не было проблем с подтверждением отпечатка пальца при использовании OpenSSH из PowerShell. (Я бы подумал об использовании этого, а не PuTTY, но, похоже, он не поддерживает мышь.)
Также я нашел этот ответ информативно, но не дает мне ответа.
(Все детали, показанные на скриншотах, отражают недолговечный экземпляр. Я уничтожил пару ключей.)
Примите (хотя бы временно) ключ хоста, указав тип ключа (алгоритм) и, возможно, отпечаток пальца, но пока не вводите какую-либо конфиденциальную информацию, такую как ваш пароль (пароли) или видео с кошками. Делать
ssh-keygen -l -f /etc/ssh/ssh_host_{type}_key.pub
Это покажет «современный» (sha256 / base64) отпечаток для ключа. Убедитесь, что оно соответствует значению в консоли AWS. Можете добавить -v
и вместо этого проверьте рисунок «ASCII art», который, по сообщениям исследований, легче сравнивать, хотя лично я так не нашел. Но тогда я никогда не умел решать головоломки «что не так в этом рисунке», которые раньше публиковались в газетах, когда были газеты.
По желанию также делаем
ssh-keygen -l -E md5 -f {same}
чтобы подтвердить, что «древний» (md5 / hex) отпечаток пальца соответствует значению, показанному PuTTY, хотя в этом не должно быть никаких сомнений.
Если окажется, что это не тот хост, отключите и удалите неверно принятый ключ из реестра в HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\SshHostKeys
.