Идентификация удаленного хоста изменилась

Я пытаюсь подключить serverpilot вручную на облачном сервере в OVH (unbuntu 16) через терминал на моем Mac (ssh root@vpsXXX.ovh.net)

Операция не удалась один раз, и теперь, когда я пытаюсь переустановить ее, я получаю сообщение об ошибке "ПРЕДУПРЕЖДЕНИЕ: УДАЛЕННАЯ ИДЕНТИФИКАЦИЯ ХОСТА ИЗМЕНИЛАСЬ!"

Я прочитал в блоге, набрав ssh-keygen -R hostname может решить проблему, но когда я делаю это, я получаю сообщение "Host hostname not found in /Users/GregMac/.ssh/known_hosts"

Есть идеи, как это решить? (Я новичок в настройке серверов и в командной строке... вот почему я рассчитывал на серверный пилот)

Спасибо

1 ответ

Решение

Краткий ответ

Существует файл, который был изменен с момента последней попытки связаться с сервером SSH, работающим на этом хосте. Этот файл

/Users/whateveryourusernameis/.ssh/known_hosts

Где-то в этом файле есть запись, только одна строка, начиная с хоста, который вы пытались достичь в скобках, например [vpsXXX.ovh.net],

Если вы уверены, что сервер, к которому вы пытаетесь подключиться, - это сервер, который вы только что изменили и настроили самостоятельно, можно удалить эту строку и повторить попытку.

Более длинный ответ, позвонил в

SSH - это самый простой инструмент на поясе сисадмина, и то, как он работает, заслуживает вашего внимания.

Когда вы обращаетесь к серверу ssh, одним из первых шагов, которые делает сервер, является предоставление клиенту ssh собственного открытого ключа хоста. Этот ключ обычно добавляется к клиенту ~/.ssh/known_hosts файл, так что если этот ключ изменяется между различными сеансами SSH, клиент будет предупрежден, что хост больше не является первоначальным хостом, с которым он связывался ранее. Это предупреждает вас о том, что хост, которого вы достигли, может быть самозванцем, если вы уже не знаете, без сомнения, что хост фактически изменился.

Ключ хоста является основной частью процесса согласования SSH, с которым вам следует ознакомиться, если вы администрируете какую-либо систему. Этот ключ обычно генерируется только один раз, при первом запуске SSH-сервера. Поэтому, если вы получили предупреждение об изменении ключа хоста, произошло одно из следующих событий:

  • Новый сервер (или образ машины и т. Д.) Был развернут, а IP-адрес или имя домена, которые когда-то указывали на прежний сервер, были изменены, чтобы указывать на новый сервер (что типично, особенно в облачных средах).
  • Кто-то изменил или удалил открытый ключ хоста на машине. Я сразу же удивлюсь, почему, поскольку обычно нет никаких причин для этого - одним исключением могут быть чрезвычайно строгие процедуры безопасности, которые периодически поворачивают ключ. Даже если это так, я ожидаю, что в этом случае будет распространяться новый отпечаток открытого ключа, чтобы избежать этой ошибки.
  • Кто-то сумел перехватить ваш трафик, отправленный на этот IP-адрес или доменное имя, и направил его на свой собственный сервер либо в непродуманной попытке организовать MITM SSH-атаку, либо, скорее всего, он попытался вставить себя для сбора трафик на отдельный порт и протокол (например, HTTPS).

Если вы работаете в облачной среде, новые образы машин и экземпляры все время меняются местами для замены старых. Таким образом, способ удалить предупреждение и продолжить работу с SSH на вашем новом хосте - это просто удалить строку, на которой возникла ошибка, со старым отпечатком. ~/.ssh/known_hosts файл. Как показывает практика, лучше всего удалить это, как только вы узнаете, что замена произошла, а затем войти в систему один раз, чтобы подтвердить и сохранить новый ключ хоста.

Наконец, уважайте своих коллег-администраторов и дайте им знать, что это произошло, чтобы они сами не чувствовали необходимость включать пожарную сигнализацию.

Постскриптум (или проверка ошибок ssh-keygen -R)

Я нашел страницу, похожую на ту, что вы сделали, и там было примечание о новом поведении, которое может изменить идентификацию открытого ключа хоста на какое-то хэшированное значение, о котором я раньше не слышал - вместо [vpsXXX.ovh.net]это может выглядеть как [BF8JDF9SS@67IX] вместо. Если это так, и вы не слишком много редактируете, вы можете переместить файл known_hosts, подключиться через ssh, и это создаст новый файл с одной строкой. Эта строка будет иметь правильное хешированное значение домена или IP-адреса, к которому вы подключились, и поэтому вы заменяете старый ключ хоста новым из только что созданного файла. Переместите отредактированный файл known_hosts обратно на место и вуаля - вы обновили сохраненный открытый ключ хоста для этого соединения.

Другие вопросы по тегам