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


4

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

Ключ хоста сервера не відповідає тому, який PuTTY записав у реєстр.

після того, як я натискаю

Так

PuTTY додає ключ сервера RSA до реєстру Windows 10, і я зможу увійти на віддалений сервер, і попередження не з’явиться знову.

Я знаю, що ключ RSA поставляється як пари, як державні, так і приватні. Я намагаюся зрозуміти, який ключ зберег сервер у моїй локальній машині, я вважаю, відкритим ключем сервера.

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

А де цей загальний ключ зберігається на сервері? під /root/.ssh/ authorized_keys?


1
Ви конкретно говорите про "хост" ключі, правда? Ви не змішуєте ключ "хост" з клавішею "користувач" для пари обміну ключами, необхідної для автентифікації користувача на сервері SSH, правда?
Pimp Juice IT IT

Відповіді:


4

Як правило, ви повинні бути дуже обережними, коли отримуєте

ПОПЕРЕДЖЕННЯ - ПОТЕНЦІАЛЬНА БЕЗПЕКА БЕЗПЕКИ!

Ключ хоста сервера не відповідає тому, який PuTTY записав у реєстр.

Це вказівка ​​на напад MITM .

Дивіться також документацію PuTTY для ПОПЕРЕДЖЕННЯ - ПОТЕНЦІАЛЬНА БЕЗПЕКА БЕЗПЕКИ! (яка основна частина повідомлення, яку ви якось опустили у своєму запитанні).

Ви ніколи не отримуєте це повідомлення для нового сервера. Якщо, звичайно, новий сервер повторно не використовує IP-адресу / ім'я хоста якогось відкинутого сервера. У цьому випадку нормально ігнорувати попередження.


Звичайно, це відкритий ключ, який кеширує PuTTY. Приватний ключ є секретним , і він не повинен бути доступний для всіх, за винятком адміністратора сервера. Таким чином, SSH клієнт не може отримати його.


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


Пари ключів зазвичай зберігаються в /etc/ssh(на Linux з OpenSSH).


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

Дивіться мою статтю про Розуміння пар ключів SSH .


1
Щоразу, коли мої автоматизовані завдання FTP стикаються з цією помилкою, вона зупиняється, я отримую сповіщення, а потім я звертаюся до адміністраторів FTP-сервера тощо і перевіряю, чи дійсно вони змінили свій хост-ключ. Ось як я вирішую цю конкретну проблему, яка час від часу трапляється за допомогою автоматики. Гарна відповідь, як звичайно Мартін !!!
Pimp Juice IT IT

1

Я знаю, що ключ rsa надходить як пари, як публічні, так і приватні, що я намагаюся зрозуміти - це ключ, який сервер зберігав у моїй локальній машині, відкритий ключ сервера, я думаю,

Так, PuTTY зберігає відбиток пальця відкритого ключа сервера. Ви можете побачити всі збережені ключі в реєстрі під клавішею:HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\SshHostKeys

також коли шпаклівка встановила початкове підключення SSH до сервера, як сервер вирішує, який ключ переслати? припустимо, що сервер має список відкритих ключів, чи є загальний ключ для будь-якого клієнта, який намагається встановити з'єднання? і де цей загальний ключ зберігається на сервері?

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


1
Це не кепський відбиток, який кешується. Це повний відкритий ключ.
Мартін Прикрил

чи можу я зрозуміти це як /etc/ssh/ssh_host_rsa_key.pub, де знаходиться один з головних ключів. а хост-ключ використовується для виявлення того, що насправді є сервером
Junchen Liu

це призводить до іншого питання, як я зупиняю попередження, що виникає при першому підключенні до нього? приєднати відкритий ключ цього сервера під час першого з'єднання? а в шпаклівці як це зробити
Junchen Лю

1
@JunchenLiu Це веб-сайт Q&A, а не чат. Прийміть відповідь, яка найкраще відповідає на ваше запитання. А якщо у вас є інше питання, опублікуйте його окремо.
Мартін Прикрил
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.