我在使用无密码 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”