Первое SSH-подключение больше не лотерея: защита от MitM для любого VPS

Как обезопасить первый SSH-коннект к серверу, не надеясь на удачу и не веря на слово облачным провайдерам.
Помните то щемящее чувство, когда вы впервые подключаетесь к свежему VPS и видите пугающее сообщение о неизвестном ключе хоста? А вдруг это уже MitM-атака, и ваш сервер на самом деле — зловещий двойник? Обычно мы просто говорим 'yes' и надеемся на лучшее, как будто покупаем кота в мешке на AliExpress.
Но есть способ сделать первый SSH-коннект безопасным, не полагаясь на честность облачного провайдера. Суть в том, чтобы заранее получить отпечаток SSH-ключа хоста через доверенный канал — например, через API облака или SSHFP-запись в DNS. Вы проверяете отпечаток до того, как вводите пароль, и только потом подключаетесь.
На практике это выглядит так: вы запускаете скрипт, который получает публичный ключ сервера через HTTPS-запрос к API провайдера (у многих есть такой эндпоинт), сравнивает его с тем, что вам показывает SSH, и если всё совпадает — можно смело жать 'yes'. Если нет — бегом менять провайдера и писать гневный пост в блог.
Конечно, это не панацея: API может быть скомпрометирован, DNS-записи подделаны. Но это уже серьёзный шаг вперёд по сравнению с 'а давайте просто поверим'. Особенно актуально для стартапов, которые разворачивают десятки серверов и не хотят, чтобы их первый же деплой стал последним.
Комментарий студии METABYTE: Мы тоже любим спать спокойно, поэтому всегда настаиваем на проверке ключей до первого подключения. А если ваш CI/CD пайплайн всё ещё доверяет хосту на слово — пора его немного подкрутить, как гайку на старом велосипеде.