在 centos 中使用 /usr/sbin/sshd 启动 sshd

在 centos 中使用 /usr/sbin/sshd 启动 sshd

我是 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 

我希望这有帮助。

相关内容