Помилка `не вдалося завантажити хост-ключ` при спробі відтворити хост-ключі SSH


13

Я намагаюся відтворити хост-ключі ssh-сервера.

У мене є щонайменше два способи зробити це:

  • За допомогою налаштування dpkg

    dpkg-reconfigure openssh-server
    

    Це добре працює, але я не можу тоді надати довжину ключа. Я хочу, наприклад, 4096 для ключа RSA.

  • Вручну за допомогою ssh-keygen

    sudo ssh-keygen -f /etc/ssh/ssh_host_rsa_key -N 'myverylongpasswordhere' -b 4096 -t rsa
    

    Це відтворює мені ключі, але після перезавантаження сервера я отримую таке повідомлення про помилку :

    could not load host key: /etc/ssh/ssh_host_rsa_key
    

    тому я перевірив, що там у файлі sshd_config:

    HostKey /etc/ssh/ssh_host_rsa_key
    

    відповідає ідеально. Отже, я перевірив власника та права на всі свої ключі

    -rw------- 1 root root 3326 Mär 24 08:57 ssh_host_rsa_key
    

    Коли я видаляю всі ключі і відтворюю їх dpkg-reconfigure openssh-server, вони мають менші розміри і мають такі самі файлові права, як і вище.

Питання: Як я можу використовувати dpkg-reconfigureз keylengh 4096 для RSA?


Будь ласка, запустіть sshdу режимі налагодження з командного рядка ( sudo sshd -d) для отримання додаткової інформації про проблему та опублікуйте вихід.
Девід Фоерстер

@DavidFoerster Це виглядає як гарна пропозиція. Я спробував відтворити проблему, тимчасово перемістивши свої клавіші, створивши нові ключі з паролями, зупинившись і перезавантажившись… Я не отримую повідомлення про помилку ОП. Це результат я отримую livewire@za20:/etc/ssh$ sudo sshd -dвихід У sshd re-exec requires execution with an absolute pathіншому випадку я включив би приклад в моїй обороні :(
LiveWireBT

Вибачте, це мало бути sudo /usr/sbin/sshd -d. Помилка, яку ви отримали, мається на увазі буквально (хоча і не зовсім ясно).
Девід Фоерстер

Незважаючи на те, що прийнята відповідь вирішує проблему, я все ще цікавлюся остаточним запитанням у першій публікації: Як я можу використовувати dpkg-reconfigureклавішу 4096? Чи є десь файл конфігурації, який містить цю інформацію? Я озирнувся в базах даних debconf (in /var/cache/debconf/), але не знайшов нічого, що було б схожим на довжину ключа.
ph0t0nix

Відповіді:


8
sudo ssh-keygen -f /etc/ssh/ssh_host_rsa_key -N 'myverylongpasswordhere' -b 4096 -t rsa

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

could not load host key: /etc/ssh/ssh_host_rsa_key

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

Якщо ви зацікавлені у зміцненні вашого SSH-сервера, то рекомендую прочитати https://stribika.github.io/2015/01/04/secure-secure-shell.html командою, що використовується для створення ключа хостингу в цьому документі, є:

ssh-keygen -t rsa -b 4096 -f ssh_host_rsa_key

Але слід прочитати весь документ, перш ніж вносити будь-які зміни.


працює. просто видаляючи мій довгий пропуск слова. до речі: дійсно приємна для читання стаття. насправді opensh походить від ubuntu-repro в моєму випадку, і він не підтримує KexAlgorithms curve25519-sha256 @ libssh.org, diffie-hellman-group-exchange-sha256
Еміль Соммер

20

Жодна з вищезгаданих відповідей не працювала для мене. Я виправив свою систему ubuntu, зробивши наступне:

/usr/bin/ssh-keygen -A

1
ЦЕЙ. Це реальна відповідь, підтверджена в manpage для ssh-keygen про той прапор "-A": Для кожного з типів ключів (rsa1, rsa, dsa, ecdsa та ed25519), для яких не існує ключів хоста, генерують ключі хоста зі шляховим файлом ключа за замовчуванням, порожньою парольною фразою, бітами за замовчуванням для типу ключа та коментарем за замовчуванням. Це використовується сценаріями системного адміністрування для створення нових ключів хоста.
BoomShadow

1

Просто запустіть:

ssh-keygen -t rsa -b 4096

ssh-keygen генерує ключ SSH.

  • -t визначає тип ключа для створення
  • -b вказує кількість бітів у ключі.

Дивіться цю сторінку для отримання додаткової інформації.


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

3
@EmilSommer Ні, що саме це відповідь, просто відсутній пояснення (чому ви отримаєте повідомлення про помилку , і що це означає).
LiveWireBT
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.