我是 Linux 新手,但 Centos 是最新的。
使用 CentOS 版本 6.6(最终版)
我可以通过启动 ssh 服务service sshd start
并获得此输出
Generating SSH2 RSA host key: [ OK ]
Generating SSH1 RSA host key: [ OK ]
Generating SSH2 DSA host key: [ OK ]
Starting sshd: [ OK ]
之后就可以通过 ssh 连接,没有任何问题。
但是我需要通过 ssh 启动/usr/sbin/sshd -D
并获取此输出
Could not load host key: /etc/ssh/ssh_host_rsa_key
Could not load host key: /etc/ssh/ssh_host_dsa_key
并且服务无法启动。
答案1
第一个示例中的输出实际上来自 init 脚本。/etc/init.d/sshd
如果您想查看那里发生的情况的完整上下文,请检查。
如果您尝试在 Docker 容器中复制此内容,则需要复制。重要的命令是:
$KEYGEN -q -t rsa -f $RSA_KEY -C '' -N ''
$KEYGEN -q -t dsa -f $DSA_KEY -C '' -N ''
一旦扩展所有变量,它就变成:
/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 ''
答案2
我怀疑您正在尝试以非 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
我希望这有帮助。