Я намагаюся оновити свій ssh-сервер з 2048-розрядних ключів RSA до великих клавіш, оскільки рекомендації стосуються скорочення 2048-бітних ключів незабаром.
Я створив новий ключ, а потім додав його до sshd-конфігурації, наприклад:
HostKey / etc / ssh / ssh_host_rsa_key ( спочатку старий 2-бітний ключ) HostKey / etc / ssh / ssh_host_rsa4096_key (новий більший ключ 2-й )
Після перезавантаження sshd
я ssh'd хосту, я не отримую попередження про зміну ідентифікації, однак нове також не кешоване ~/.ssh/known_hosts
. Якщо я розміщую рядки у зворотному порядку, я отримую попередження про змінену ідентифікацію. Так само, коли я додаю ключ ed25519, незалежно від того, в якому порядку я його вклав, клієнт не додає новий ключ до відомого файлу хостів.
Це, мабуть, унеможливлює перекидання ключів хоста SSH - важко повірити, що це насправді так, хоча, враховуючи, що безпека вимагає регулярного оновлення ключів
Я знаю, що ви можете просто поміняти ключ, тоді кожному клієнту потрібно запустити, ssh-keygen -R
щоб видалити старий ключ, а потім вручну перевірити та прийняти новий ключ - але це справжній біль, особливо якщо у вас багато клієнтів, які підключаються або не вказують адміністратор. всі клієнти. Не кажучи вже про те, що якщо ви не адмініструєте клієнтів, є дуже хороший шанс, що вони насправді не перевірять хост-ключ і замість цього просто натисніть Y - тому спроба поліпшити безпеку, ймовірно, відкриє вас для людини серединні атаки замість цього.
Чи є спосіб змусити оновлення ключів хоста SSH працювати? Тобто клієнти повинні вивчити новий більш захищений ключ (а також, сподіваємось, не вивчити застарілий ключ). І не даючи ключ хосту, змінили попередження про посередництво.