Як перевернути ключі ssh?


17

Я намагаюся оновити свій 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 працювати? Тобто клієнти повинні вивчити новий більш захищений ключ (а також, сподіваємось, не вивчити застарілий ключ). І не даючи ключ хосту, змінили попередження про посередництво.


Будь ласка, подивіться на це . Хоча це не забезпечує рішення того, що ви хочете зараз, це може допомогти вам досягти кінцевих цілей у майбутньому.
rda

Відповіді:


14

Обертання ключа хоста підтримується з OpenSSH 6.8 (і клієнт, і сервер додають підтримку в цій версії).

Отже, процес повинен працювати так:

  • Створіть та додайте нові ключі з можливістю HostKey newkey(після існуючих) до/etc/ssh/sshd_config
  • Перезапустити sshd
  • Клієнти повинні налаштуватись UpdateHostKeys yesу їх конфігурації (глобально або на хоста)
  • Підключені клієнти підберуть усі нові ключі
  • Через деякий час (місяці?) Ви можете вийняти старі клавіші з sshd_configі перезапуститиsshd
  • Клієнти (які підключилися під час перехідного періоду) вже матимуть нові ключі (старі не будуть видалені, що є єдиною проблемою тут), і вони не покажуть попередження про атаку MitM.

Нові достатньо клієнти зможуть забрати нові ключі. Ця функція не включена за замовчуванням, ймовірно, тому, що вона є абсолютно новою і незабаром виявила певний розгляд безпеки. Але в ці дні слід добре його використовувати.


-4

sshd завжди використовує перший рядок, тому видаліть його, а потім перезапустіть sshd.


1
... в результаті чого страхітливий ключ хоста змінив попередження. Намагаючись уникнути цього, спонукаючи клієнтів вивчити новий ключ (і припинити старий).
дероберт

Ти правий. Не можна одночасно використовувати 2 різні клавіші. ssl не tls. Немає ключової функції додавання, а лише змінюється.
Іпор Сірсер

4
Це ні SSL, ні TLS. Протокол підтримує декілька ключів хоста - наприклад, раніше у кожного були і ключі RSA, і DSA. Зараз це, як правило, ключі ED25519, ECDSA та RSA.
дероберт
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.