Предупреждение PuTTY: ключ хоста сервера не совпадает с тем, который PuTTY кэшировал в реестре.

Предупреждение PuTTY: ключ хоста сервера не совпадает с тем, который PuTTY кэшировал в реестре.

При использовании PuTTY для подключения к новому хосту я часто получаю предупреждение

Ключ хоста сервера не совпадает с ключом, который PuTTY кэшировал в реестре.

после того как я нажму

Да

PuTTY добавляет ключ RSA сервера в реестр Windows 10, и я смогу войти на удаленный сервер, а предупреждение больше не появится.

Я знаю, что ключ RSA поставляется парами, как публичный, так и приватный. Я пытаюсь понять, какой ключ сервер сохранил на моей локальной машине, публичный ключ сервера, я полагаю.

Также, когда PuTTY установил первоначальное SSH-подключение к серверу, как сервер решает, какой ключ пересылать? Предположим, что у сервера есть список открытых ключей, есть ли общий ключ для любого клиента, пытающегося установить соединения?

А где на сервере хранится этот общий ключ? В разделе /root/.ssh/ authorized_keys?

решение1

В общем, вам следует быть очень осторожными, когда вы получаете

ВНИМАНИЕ — ВОЗМОЖНОЕ НАРУШЕНИЕ БЕЗОПАСНОСТИ!

Ключ хоста сервера не совпадает с ключом, который PuTTY кэшировал в реестре.

Это показатель того,Атака MITM.

См. также документацию PuTTY дляВНИМАНИЕ — ВОЗМОЖНОЕ НАРУШЕНИЕ БЕЗОПАСНОСТИ!(какова основная часть сообщения, которую вы каким-то образом пропустили в своем вопросе).

Вы никогда не получите это сообщениеновыйсервер. Если, конечно, новый сервер не использует IP-адрес/имя хоста какого-то удаленного сервера. В этом случае предупреждение можно проигнорировать.


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


Сервер действительно может иметь несколько пар ключей для разных алгоритмов (по одной для каждого алгоритма, например RSA, DSA, ECDSA, ED25519). Клиент и сервер согласятся, какой алгоритм лучше использовать (лучший из поддерживаемых как сервером, так и клиентом).


Пары ключей обычно хранятся в /etc/ssh(в Linux с OpenSSH).


Хотя формулировка вашего вопроса намекает, что вы можете спутать пару ключей сервер/хост с парой ключей, которую вы используете для аутентификации на сервере.

Видетьмойстатья оПонимание пар ключей SSH.

решение2

Я знаю, что ключ RSA поставляется в виде пар, как открытого, так и закрытого, и я пытаюсь понять, какой ключ сервер сохранил на моем локальном компьютере, открытый ключ сервера, я полагаю.

Да, PuTTY сохраняет отпечаток открытого ключа сервера. Вы можете увидеть все сохраненные ключи в реестре под ключом:HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\SshHostKeys

также, когда putty устанавливает первоначальное SSH-подключение к серверу, как сервер решает, какой ключ пересылать? предположим, что у сервера есть список открытых ключей, есть ли общий ключ для любого клиента, пытающегося установить подключение? и где этот общий ключ хранится на сервере?

На сервере есть только один ключ хоста для каждого типа ключа (RSA, DSA и т. д.). Где они хранятся, зависит от конфигурации, но, например, по умолчанию в системах Ubuntu они обычно хранятся в/etc/ssh

решение3

Если вы уверены, что это не атака MITM или какая-либо другая брешь в безопасности, вы можете использовать plinkдля обновления ключа, например

plink [email protected]

Он подскажет сВНИМАНИЕ — ВОЗМОЖНОЕ НАРУШЕНИЕ БЕЗОПАСНОСТИ!сообщение и предложите вариант обновления кэшированного ключа. Не нужно ковыряться в реестре Windows самостоятельно...

решение4

Выполните следующую команду

сш -Т[email protected]

Он выдаст вам предупреждающее сообщение, похожее на следующее, иудалить проблемный ключ из файла known_hosts.

Предупреждение: Ключ хоста ECDSA для «github.com» отличается от ключа для IP-адреса «140.82.112.4»

  • Ключ, вызывающий подозрение, для IP в ~/.ssh/known_hosts:11
  • Соответствующий ключ хоста в ~/.ssh/known_hosts:15
  • Вы уверены, что хотите продолжить подключение (да/нет)?

Примечание:

  • Повторяйте, пока все проблемные ключи не будут удалены.
  • Pageant (агент аутентификации PuTTY) может потребовать перезапуска

Смотрите также:https://github.blog/2023-03-23-мы-обновили-наш-rsa-ssh-host-key/

Связанный контент