Docker 容器centos7中ssh启动无法加载 hostKey文件问题

问题

RUN /usr/sbin/sshd -D
Could not load host key: /etc/ssh/ssh_host_rsa_key
Could not load host key: /etc/ssh/ssh_host_ecdsa_key
Could not load host key: /etc/ssh/ssh_host_ed25519_key

解决

/etc/ssh/sshd_config中的默认配置是这样的,指明 SSH V2 需要的 hostKey 有4个

# HostKeys for protocol version 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key

所以,要解决这个问题,一种方法是将sshd_config 中的 ssh_host_dsa_key/ssh_host_ecdsa_key/ssh_host_ed25519_key这三行注释掉,另外一种就是使用-t dsa指定生成 DSA 的密钥文件.

上面的例子中,只生成了 RSA 的密钥,没有 DSA 的。生成 DSA 的密钥文件

## 注意,如果没有-A 只会生成/etc/ssh/ssh_host_dsa_key,会报缺少ssh_host_ecdsa_key和ssh_host_ed25519_key的错
ssh-keygen -A -t dsa -f /etc/ssh/ssh_host_dsa_key
2015-11-04 19:1251