/etc/init.d/sshd start 和 /usr/sbin/sshd 有什么区别?

/etc/init.d/sshd start 和 /usr/sbin/sshd 有什么区别?

我在使用无密码 ssh 时遇到了问题。我检查了一遍又一遍,确保所有设置都正确。

两台机器都是 RHEL6,当目标机器首次启动时,无密码 ssh 不起作用。如果我停止 ssh(service sshd stop 或 /ect/init.d/sshd stop),然后直接启动它(/usr/sbin/sshd),无密码 ssh 就可以正常工作。

如果我通过服务启动 ssh(service sshd start 或 /etc/init.d/sshd start),无密码 ssh 不起作用。

只是为了测试,我尝试注释掉 /etc/init.d/sshd 中的整个 start() 函数,并将其替换为 /usr/sbin/sshd - 但仍然无法允许无密码 ssh。我相信这意味着 /etc/init.d/sshd 文件中的某些内容导致了问题,但我对 Linux 了解不够,无法缩小问题范围。

答案1

看起来 init.d 版本以无法识别的不同服务器密钥启动,但这应该会向您发出客户端警告。可能是服务正在从您预期之外的其他地方读取配置。也可能是您正在运行的 xinetd 服务窃取了端口 22 的传入连接。

尝试使用上述方法启动服务,并查看输出结果是否有差异

ps aux | grep [s]shd 

这可能会给你一些关于正在使用哪个配置文件的线索。此外,在使用 /etc/init.d/sshd 启动 sshd 后,你可能想仔细检查它是否在监听端口 22。这可以通过以下方式完成

netstat -ntpl 

或者通过检查“paswordfull”登录是否有效。

答案2

由于执行方式不同,存在差异,请查看centos 错误,要解决这个问题,请从 /etc/init.d/sshd 中删除第一行“#!/bin/bash”

相关内容