SSH 守护程序运行失败

SSH 守护程序运行失败

在我的 Linux 机器上,我已启用 SSH 服务。但是,每当 /usr/sbin/sshd 初始化时,它都无法守护进程。/var/run 下没有生成 sshd.pid 文件,并且当我执行“ps”时 sshd 未运行。

奇怪的是,当我在非守护进程模式下运行 sshd(即“/usr/sbin/sshd -D”)或者在调试模式下运行它(即“usr/sbin/sshd -d”)时,sshd 能够运行并且在 /var/run 下生成 sshd.pid 文件。

我还验证了默认端口 22 可用且未被其他进程使用。此外,当我尝试不同的端口时,我观察到了上述相同的行为。

知道为什么会发生这种情况吗?

谢谢

答案1

我可以问一下如果你这样做你会看到什么吗:

 /usr/sbin/sshd -p 10022 -d

该命令的作用是在调试模式下(保持在前台)在端口 100222 上启动一个全新的 sshd。这是我的系统中启动正常的一个 sshd:

This is the output I see from a working one:
debug1: sshd version OpenSSH_7.4, OpenSSL 1.0.2k-fips  26 Jan 2017
debug1: private host key #0: ssh-rsa SHA256:MSjzB8S5CxN8QBBis8FWehZT66qV0IgUT1ayBjUxRJc
debug1: private host key #1: ecdsa-sha2-nistp256 SHA256:rc8cgnqJVCdab+vzUZMlGxr9a9R9Bq9kv+VsMitLpjE
debug1: private host key #2: ssh-ed25519 SHA256:c1TzuNsEHvgqObVuKe1E5Km9pYDg76yqeZzZim3XJWI
debug1: rexec_argv[0]='/usr/sbin/sshd'
debug1: rexec_argv[1]='-p'
debug1: rexec_argv[2]='10022'
debug1: rexec_argv[3]='-d'
debug1: Set /proc/self/oom_score_adj from 0 to -1000
debug1: Bind to port 10022 on 0.0.0.0.
Server listening on 0.0.0.0 port 10022.
debug1: Bind to port 10022 on ::.
Server listening on :: port 10022.

如果您可以运行上述程序并发布输出,它可能会揭示更多有关不起作用的信息。

相关内容