Linux有問必答:如何修復“sshd error: could not load host key”
問題:當我嘗試SSH到一臺遠端伺服器時,SSH客戶端登陸失敗並提示“Connection closed by X.X.X.X”。在SSH伺服器那端,我看到這樣的錯誤訊息:“sshd error: could not load host key.”。這發生了什麼問題,我怎樣才能修復該錯誤?
該SSH連線錯誤的詳細症狀如下。
SSH客戶端方面:當你嘗試SSH到一臺遠端主機時,你沒有看見登入螢幕,你的SSH連線就立即關閉,並提示此訊息:“Connection closed by X.X.X.X”。
SSH伺服器方面:在系統日誌中,你看到如下錯誤訊息(如,在Debian/Ubuntu上,/var/log/auth.log)。
Oct 16 08:59:45 openstack sshd[1214]: error: Could not load host key: /etc/ssh/ssh_host_rsa_key Oct 16 08:59:45 openstack sshd[1214]: error: Could not load host key: /etc/ssh/ssh_host_dsa_key Oct 16 08:59:45 openstack sshd[1214]: error: Could not load host key: /etc/ssh/ssh_host_ecdsa_key Oct 16 08:59:45 openstack sshd[1214]: fatal: No supported key exchange algorithms [preauth]
導致該問題的根源是,sshd守護程式不知怎麼地不能載入SSH主機金鑰了。
當OpenSSH伺服器第一次安裝到Linux系統時,SSH主機金鑰應該會自動生成以供後續使用。如果,不管怎樣,金鑰生成過程沒有成功完成,那就會導致這樣的SSH登入問題。
讓我們檢查能否在相應的地方找到SSH主機金鑰。
$ ls -al /etc/ssh/ssh*key
如果SSH主機金鑰在那裡找不到,或者它們的大小被截斷成為0(就像上面那樣),你需要從頭開始重新生成主機金鑰。
重新生成SSH主機金鑰
在Debian、Ubuntu或其衍生版上,你可以使用dpkg-reconfigure工具來重新生成SSH主機金鑰,過程如下:
$ sudo rm -r /etc/ssh/ssh*key $ sudo dpkg-reconfigure openssh-server
在CentOS、RHEL或Fedora上,你所要做的是,刪除現存(有問題的)金鑰,然後重啟sshd服務。
$ sudo rm -r /etc/ssh/ssh*key $ sudo systemctl restart sshd
另外一個重新生成SSH主機金鑰的方式是,使用ssh-keygen命令來手動生成。
$ sudo ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key $ sudo ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key $ sudo ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key
在生成新的SSH主機金鑰後,確保它們能在/etc/ssh目錄中找到。此時,不必重啟sshd服務。
$ ls -al /etc/ssh/ssh*key
現在,再試試SSH到SSH伺服器吧,看看問題是否已經離你而去了。
via: http://ask.xmodulo.com/sshd-error-could-not-load-host-key.html
相關文章
- Linux有問必答:如何更新過期版本的UbuntuLinuxUbuntu
- Linux有問必答:如何用Perl檢測Linux的發行版本Linux
- Linux有問必答:如何在Linux中修改環境變數PATHLinux變數
- Linux有問必答:如何在命令列下壓縮JPEG影像Linux命令列
- Linux有問必答:如何檢查MariaDB服務端版本Linux服務端
- Linux有問必答:如何在Linux下重新命名多個檔案Linux
- Linux有問必答:如何檢查Linux的記憶體使用狀況Linux記憶體
- Linux有問必答:如何顯示Linux網橋的MAC學習表LinuxMac
- Linux有問必答:如何為在Linux中安裝兄弟牌印表機Linux
- Linux 有問必答:如何知道程式執行在哪個 CPU 核心上?Linux
- => ERROR [sshd internal] load metadata for docker.io/vulhub/openssh:7.7 問題解決,親測有效!ErrorDocker
- Linux有問必答:Linux上如何檢視某個程式的執行緒Linux執行緒
- Linux有問必答:如何在命令列建立一個MySQL資料庫Linux命令列MySql資料庫
- Linux 有問必答:如何知道當前正在使用的 shell 是哪個?Linux
- 如何修復 “fatal error: security/pam_modError
- Linux 有問必答:如何從VirtualBox中從主機訪問NAT客戶機Linux
- Error: Could not load module '/usr/local/nagios/bin/ndo2ErroriOS
- 記一次sshd無法啟動的修復
- sqlServer修復有問題的表SQLServer
- 如何在 Linux 中修復“fatal error: x264.h: No such file or directoLinuxError
- Connection could not be established with host 求救
- java編譯 Error: Could not find or load main class java執行包main方法Java編譯ErrorAI
- 如何修復帶有問號錯誤的 Mac 資料夾Mac
- OB有問必答 | OceanBase如何保證資料可靠性?
- Linux 有問必答:如何在Ubuntu或者Debian中編譯安裝ixgbe驅動LinuxUbuntu編譯
- Linux 有問必答:如何使用yum來下載RPM包而不進行安裝Linux
- Linux有問必答:如何在VMware ESXi虛擬機器上設定靜態MAC地址Linux虛擬機Mac
- 網站部署後Parser Error Message: Could not load type 的解決方案網站Error
- Linux 有問必答:如何在桌面版 Ubuntu 中用命令列更改系統代理設定LinuxUbuntu命令列
- Linux有問必答:如何在 Ubuntu 15.04 的 GNOME 終端中開啟多個標籤LinuxUbuntu
- 記錄:yum Could not resolve host: mirrors.cloud.aliyuncs.com; Unknown error解決CloudError
- wn10系統出現Whea uncorrectables error如何修復Error
- 如何修復 Mozilla Firefox 中出現的 “Network Protocol Error”FirefoxProtocolError
- SSH Host key verification failedAI
- 如何修復Vue中的 “this is undefined” 問題VueUndefined
- PrestaShop網站漏洞修復如何修復REST網站
- IE團隊有問必答談 Spartan 瀏覽器瀏覽器
- 如何修復 Ubuntu 上“…script returned error exit status 1”的錯誤UbuntuError