啟動sshd時,報“Could not load host key”錯,sshdhost
原文發表於cu:2016-05-24
現象:啟動sshd服務時,雖看似服務啟動成功,但用戶端並不能串連上sshd伺服器端。如下:
[root@aefe8007a17d ~]# /usr/sbin/sshdCould not load host key: /etc/ssh/ssh_host_rsa_keyCould not load host key: /etc/ssh/ssh_host_ecdsa_keyCould not load host key: /etc/ssh/ssh_host_ed25519_key
原因:
1. 從提示資訊看是sshd守護進程不能載入主機密鑰檔案,因為找不到這些密鑰檔案(設定檔/etc/ssh/sshd_config中已定義密鑰檔案名稱與路徑);
2. 一般openssh服務正常安裝後,主機會自動產生相應的主機密鑰檔案,但這裡因未知原因並沒有完成這一步動作,導致無法遠程ssh串連。
ps:檢查密鑰檔案是否存在(還有一種現象為:密鑰檔案存在,但檔案大小為0):
[root@aefe8007a17d ~]# ll /etc/ssh/total 252-rw-r--r-- 1 root root 242153 Mar 21 22:18 moduli-rw-r--r-- 1 root root 2208 Mar 21 22:18 ssh_config-rw------- 1 root root 4361 Mar 21 22:18 sshd_config
解決方案,重建主機密鑰檔案:
1. 產生rsa_key (-t表示產生的密鑰所使用的加密類型;-f項後接要產生的密鑰檔案名稱);
[root@aefe8007a17d ~]# ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_keyGenerating public/private rsa key pair.Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /etc/ssh/ssh_host_rsa_key.Your public key has been saved in /etc/ssh/ssh_host_rsa_key.pub.The key fingerprint is:5e:2d:19:51:b1:e3:e0:60:65:53:e4:14:f8:d8:38:af root@aefe8007a17dThe key's randomart image is:+--[ RSA 2048]----+| ==Bo || o.= . || o o=+ || . o+*o. || S =oo || . . .. || . . || E || |+-----------------+[root@aefe8007a17d ~]# ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key
2. 產生ecdsa_key;
[root@aefe8007a17d ~]# ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key
3. 產生ed25519_key。
[root@aefe8007a17d ~]# ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key
驗證:
1. 再次檢查密鑰檔案是否存在且合規,可以看到已產生相應主機密鑰檔案(實際上主機密鑰檔案為私密金鑰,.pub檔案為公開金鑰):
[root@aefe8007a17d ~]# ll /etc/ssh/total 276-rw-r--r-- 1 root root 242153 Mar 21 22:18 moduli-rw-r--r-- 1 root root 2208 Mar 21 22:18 ssh_config-rw------- 1 root root 227 May 22 16:48 ssh_host_ecdsa_key-rw-r--r-- 1 root root 179 May 22 16:48 ssh_host_ecdsa_key.pub-rw------- 1 root root 411 May 22 16:48 ssh_host_ed25519_key-rw-r--r-- 1 root root 99 May 22 16:48 ssh_host_ed25519_key.pub-rw------- 1 root root 1679 May 22 16:48 ssh_host_rsa_key-rw-r--r-- 1 root root 399 May 22 16:48 ssh_host_rsa_key.pub-rw------- 1 root root 4361 Mar 21 22:18 sshd_config
2. 此時用戶端可ssh串連上sshd伺服器端:
[root@localhost ~]# ssh 172.17.0.2The authenticity of host '172.17.0.2 (172.17.0.2)' can't be established.ECDSA key fingerprint is 37:2a:69:46:c4:bd:92:b2:43:b4:cc:42:41:8e:12:2e.Are you sure you want to continue connecting (yes/no)?