При первом подключении через SSH с участием ключи новоиспеченному Цифровой океан капля ВМ работает FreeBSD (на этот учебник), мы получаем сообщение «Подлинность хоста бла-бла не может быть установлена». Я понимаю, это означает, что на моем компьютере нет отпечаток пальца с чем сравнивать. Таким образом, мой SSH-клиент не может узнать, является ли SSH-сервер на другой стороне законным или нет.
На данный момент у нас есть два варианта:
Amazon предоставляет такой механизм для своих инстансов EC2, чтобы узнать отпечаток нового сервера, как обсуждается здесь.
➥ Есть ли такой механизм для Цифровой океан «Капельный» экземпляр виртуальной машины, чтобы узнать отпечаток сервера?
Я знаю, что это старый вопрос, но сегодня я столкнулся с той же проблемой, и с OP с моделью защиты TOFU, так что вот что я использовал, чтобы предотвратить риск MITM.
Обычно, как следует из вопроса, на самом деле нет способа для проверки ключей без каких-либо разговоров с администраторами сервера. Тем не мение...
...если вы делать иметь доступ к серверу, вы можете отобразить отпечаток ключа SSH, запустив ssh-keygen -lf
на открытом или закрытом ключе ...
... и, к счастью, в настоящее время DigitalOcean предоставляет веб-консоль для входа непосредственно в каплю, что дает вам доступ к рассматриваемому серверу. Чтобы попасть в консоль:
Теперь, поскольку консоль DigitalOcean ожидает, что вы войдете в систему как root, вам понадобится пароль root. Так что, если, как и я, вы решили использовать более безопасную аутентификацию SSH при первоначальной настройке дроплета, вы можете избавить себя от некоторых разочарований и начать с выбора «Сбросить пароль root». Как только DigitalOcean отправит вам новый пароль root, действуйте следующим образом:
root
, а пароль - это то, что вы установили (или код сброса, который вам отправил DigitalOcean). Совет: консоль поддерживает копирование и вставку, что полезно для кодов сброса пароля. Кроме того, для сброса вам сразу же будет предложено подтвердить код сброса и выбрать новый пароль, так что будьте к этому готовы.cd
туда, где ОС вашей капли будет хранить SSH-ключи системного уровня (для меня на Ubuntu 18.04 это было под /etc/ssh
; Я использовал метод, найденный в этот ответ).for file in *; do ssh-keygen -lf $file; done;
(Я сделал это как однострочный, с пунктуацией, как показано, и это сработало для меня; не знаю, является ли это идиоматическим bash-скриптом. Если он встречает файлы закрытого ключа без ключа или защищенные паролем, он отметит факт и передать их безвредно. Он был снят с небольшими изменениями из этот полезный сайт)Если кто-нибудь знает более простой способ, например Получая информацию об отпечатках пальцев через переписку DigitalOcean или какую-либо скрытую часть панели инструментов, не стесняйтесь публиковать другой ответ, и я с удовольствием проголосую за него.