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

现象:启动sshd服务时,虽看似服务启动成功,但客户端并不能连接上sshd服务器端。
如下:
点击( 此处 )折叠或打开
  1. [root@aefe8007a17d~]#/usr/sbin/sshd
  2. Couldnotload host key:/etc/ssh/ssh_host_rsa_key
  3. Could/ssh_host_ecdsa_key
  4. Could/ssh_host_ed25519_key

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

检查密钥文件是否存在(还有一种现象为:密钥文件存在,但文件大小为0):

点击(此处)折叠或打开

#ll/
  • total 252
  • -rw-r--1 root root 242153 Mar 21 22:18 moduli
  • -1 root root 2208 Mar 21 22:18 ssh_config
  • -1 root root 4361 Mar 21 22:18 sshd_config

  • 重新生成主机密钥文件:
    1. 生成rsa_key (-t表示生成的密钥所使用的加密类型;-f项后接要生成的密钥文件名);

    点击(此处)折叠或打开

    #ssh-keygen-t rsa-f/ssh_host_rsa_key
  • Generating public/private rsa key pair.
  • Enter passphrase(emptyforno passphrase):
  • Enter same passphrase again:
  • Your identification has been savedin/ssh_host_rsa_key.
  • Your public key has been saved.pub.
  • The key fingerprintis:
  • 5e:2d:19:51:b1:e3:e0:60:65:53:e4:14:f8:d8:38:af root@aefe8007a17d
  • The 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
    )折叠或打开
    -t ecdsa/ssh_host_ecdsa_key
    3. 生成ed25519_key。

    点击(此处)折叠或打开

    -t ed25519/ssh_host_ed25519_key

    再次检查密钥文件是否存在且合规,可以看到已生成相应主机密钥文件(实际上主机密钥文件为私钥,.pub文件为公钥):

    点击(此处)折叠或打开

    /
  • total 276
  • -1 root root 227 May 22 16:48 ssh_host_ecdsa_key
  • -1 root root 179 May 22 16:48 ssh_host_ecdsa_key.pub
  • -1 root root 411 May 22 16:48 ssh_host_ed25519_key
  • -1 root root 99 May 22 16:48 ssh_host_ed25519_key-1 root root 1679 May 22 16:48 ssh_host_rsa_key
  • -1 root root 399 May 22 16:48 ssh_host_rsa_key:18 sshd_config

  • 此时客户端可ssh连接上sshd服务器端:

    点击(此处)折叠或打开

    [root@localhost#ssh 172.17.0.2
  • The 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)?
  • 相关文章

    linux下开机自启: 在/etc/init.d目录下新建文件elasticsear...
    1、因为在centos7中/etc/rc.d/rc.local的权限被降低了,所以...
    最简单的查看方法可以使用ls -ll、ls-lh命令进行查看,当使用...
    ASP.NET Core应用程序发布linux在shell中运行是正常的。可一...
    设置时区(CentOS 7) 先执行命令timedatectl status|grep &...
    vim /etc/sysconfig/network-scripts/ifcfg-eth0 B...