3

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

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

после нажатия

да

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

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

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

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

2 ответа2

4

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

ВНИМАНИЕ - НАРУШЕНИЕ ПОТЕНЦИАЛЬНОЙ БЕЗОПАСНОСТИ!

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

Это признак атаки MITM.

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

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


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


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


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


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

Смотрите мою статью о понимании пар ключей SSH.

1

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

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .