嘗試重新建立 SSH 主機金鑰時出現錯誤“無法載入主機金鑰”

嘗試重新建立 SSH 主機金鑰時出現錯誤“無法載入主機金鑰”

我正在嘗試重新建立 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-reconfigurekeylengh 4096 用於 RSA?

答案1

上面的答案都不適合我。我透過執行以下操作修復了 ubuntu 系統:

/usr/bin/ssh-keygen -A

答案2

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

但在進行任何更改之前,您應該閱讀整個文件。

答案3

只需運行:

ssh-keygen -t rsa -b 4096

ssh-keygen產生 SSH 金鑰。

  • -t指定要建立的密鑰的類型
  • -b指定密鑰中的位數。

這一頁了解更多。

相關內容