首頁 >php教程 >php手册 >启动sshd时,报“Could not load host key”错

启动sshd时,报“Could not load host key”错

WBOY
WBOY原創
2016-06-13 08:39:031094瀏覽

启动sshd时,报“Could not load host key”错

现象:启动sshd服务时,虽看似服务启动成功,但客户端并不能连接上sshd服务器端。
如下:
<ol style="margin:0 1px 0 0px;padding-left:40px;" start="1" class="dp-css"><li>[root@aefe8007a17d ~]# /usr/sbin/sshd<br /></li><li>Could not load host key: /etc/ssh/ssh_host_rsa_key<br /></li><li>Could not load host key: /etc/ssh/ssh_host_ecdsa_key<br /></li><li>Could not load host key: /etc/ssh/ssh_host_ed25519_key</li></ol>

原因:
1. 从提示信息看是sshd守护进程不能加载主机密钥文件,因为找不到这些密钥文件(配置文件/etc/ssh/sshd_config中已定义密钥文件名与路径);
2. 一般openssh服务正常安装后,主机会自动生成相应的主机密钥文件,但这里因未知原因并没有完成这一步动作,导致无法远程ssh连接。

检查密钥文件是否存在(还有一种现象为:密钥文件存在,但文件大小为0):
<ol style="margin:0 1px 0 0px;padding-left:40px;" start="1" class="dp-css"><li>[root@aefe8007a17d ~]# ll /etc/ssh/<br /></li><li>total 252<br /></li><li>-rw-r--r-- 1 root root 242153 Mar 21 22:18 moduli<br /></li><li>-rw-r--r-- 1 root root   2208 Mar 21 22:18 ssh_config<br /></li><li>-rw------- 1 root root   4361 Mar 21 22:18 sshd_config</li></ol>

重新生成主机密钥文件:
1. 生成rsa_key (-t表示生成的密钥所使用的加密类型;-f项后接要生成的密钥文件名);
<ol style="margin:0 1px 0 0px;padding-left:40px;" start="1" class="dp-css"><li>[root@aefe8007a17d ~]# ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key<br /></li><li>Generating public/private rsa key pair.<br /></li><li>Enter passphrase (empty for no passphrase): <br /></li><li>Enter same passphrase again: <br /></li><li>Your identification has been saved in /etc/ssh/ssh_host_rsa_key.<br /></li><li>Your public key has been saved in /etc/ssh/ssh_host_rsa_key.pub.<br /></li><li>The key fingerprint is:<br /></li><li>5e:2d:19:51:b1:e3:e0:60:65:53:e4:14:f8:d8:38:af root@aefe8007a17d<br /></li><li>The key's randomart image is:<br /></li><li>+--[ RSA 2048]----+<br /></li><li>|          ==Bo   |<br /></li><li>|         o.= .   |<br /></li><li>|        o o=+    |<br /></li><li>|       . o+*o.   |<br /></li><li>|        S =oo    |<br /></li><li>|       . . ..    |<br /></li><li>|        .  .     |<br /></li><li>|          E      |<br /></li><li>|                 |<br /></li><li>+-----------------+<br /></li><li>[root@aefe8007a17d ~]# ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key</li><li><br /></li></ol>
2. 生成ecdsa_key;
<ol style="margin:0 1px 0 0px;padding-left:40px;" start="1" class="dp-css"><li>[root@aefe8007a17d ~]# ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key</li></ol>
3. 生成ed25519_key。
<ol style="margin:0 1px 0 0px;padding-left:40px;" start="1" class="dp-css"><li>[root@aefe8007a17d ~]# ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key</li></ol>

再次检查密钥文件是否存在且合规,可以看到已生成相应主机密钥文件(实际上主机密钥文件为私钥,.pub文件为公钥):
<ol style="margin:0 1px 0 0px;padding-left:40px;" start="1" class="dp-css"><li>[root@aefe8007a17d ~]# ll /etc/ssh/<br /></li><li>total 276<br /></li><li>-rw-r--r-- 1 root root 242153 Mar 21 22:18 moduli<br /></li><li>-rw-r--r-- 1 root root   2208 Mar 21 22:18 ssh_config<br /></li><li>-rw------- 1 root root    227 May 22 16:48 ssh_host_ecdsa_key<br /></li><li>-rw-r--r-- 1 root root    179 May 22 16:48 ssh_host_ecdsa_key.pub<br /></li><li>-rw------- 1 root root    411 May 22 16:48 ssh_host_ed25519_key<br /></li><li>-rw-r--r-- 1 root root     99 May 22 16:48 ssh_host_ed25519_key.pub<br /></li><li>-rw------- 1 root root   1679 May 22 16:48 ssh_host_rsa_key<br /></li><li>-rw-r--r-- 1 root root    399 May 22 16:48 ssh_host_rsa_key.pub<br /></li><li>-rw------- 1 root root   4361 Mar 21 22:18 sshd_config</li></ol>

此时客户端可ssh连接上sshd服务器端:
<ol style="margin:0 1px 0 0px;padding-left:40px;" start="1" class="dp-css"><li>[root@localhost ~]# ssh 172.17.0.2<br /></li><li>The authenticity of host '172.17.0.2 (172.17.0.2)'can't be established.<br />ECDSA key fingerprint is 37:2a:69:46:c4:bd:92:b2:43:b4:cc:42:41:8e:12:2e.<br />Are you sure you want to continue connecting (yes/no)?</li></ol>
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn