我正在嘗試重新建立 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?
答案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
但在進行任何更改之前,您應該閱讀整個文件。