我是Linux新手,但在Centos中是最新的。
使用CentOS版本6.6(最终)
我可以通过service sshd start启动ssh服务并获取此输出
Generating SSH2 RSA host key: [ OK ] Generating SSH1 RSA host key: [ OK ] Generating SSH2 DSA host key: [ OK ] Starting sshd: [ OK ]
而且可以通过ssh连接后没有问题。
但是我需要通过/usr/sbin/sshd -D启动ssh并获取这个输出
Could not load host key: /etc/ssh/ssh_host_rsa_key Could not load host key: /etc/ssh/ssh_host_dsa_key
而服务不启动。
第一个示例中的输出实际上来自init脚本。 检查/etc/init.d/sshd如果你想看看发生了什么事情的完整背景。
如果你想在docker容器中复制它,你将需要复制。 重要的命令是:
$KEYGEN -q -t rsa -f $RSA_KEY -C '' -N '' $KEYGEN -q -t dsa -f $DSA_KEY -C '' -N ''
一旦你展开所有的variables,就变成:
/usr/bin/ssh-keygen -q -t rsa -f /etc/ssh/ssh_host_rsa_key -C '' -N '' /usr/bin/ssh-keygen -q -t dsa -f /etc/ssh/ssh_host_dsa_key -C '' -N ''
我怀疑你试图用非root用户启动sshd应用程序。
主机密钥文件的权限只允许root读取它们。
4 -rw-r--r--. 1 root root 2047 Nov 6 09:07 ssh_config 4 -rw-------. 1 root root 3879 Nov 6 09:07 sshd_config 4 -rw-------. 1 root root 672 Jun 23 13:32 ssh_host_dsa_key 4 -rw-------. 1 root root 963 Jun 23 13:32 ssh_host_key 4 -rw-------. 1 root root 1675 Jun 23 13:32 ssh_host_rsa_key
在CentOS6中,selinux可以阻止一些操作,所以你可能需要看看:
/var/log/audit/audit.log
我希望这有帮助。