我有一个Centos 7服务器和sshd正在运行,并接受连接就好了。
问题是, messages日志不断报告失败的sshd启动尝试和secure日志不断报告,因为端口22正在使用sshd无法启动。
消息;
Mar 15 12:03:01 ded2100 systemd [1]:启动用户root的会话10614。
3月15日12:03:05 ded2100 systemd [1]:sshd.service启动操作超时。 终止。
Mar 15 12:03:05 ded2100 systemd [1]:无法启动OpenSSH服务器守护进程。
Mar 15 12:03:05 ded2100 systemd [1]:单元sshd.service进入失败状态。
Mar 15 12:03:05 ded2100 systemd [1]:sshd.service失败。
安全;
Mar 15 12:01:34 ded2100 sshd [14947]:error:绑定到端口22上的0.0.0.0失败:地址已经在使用中。
3月15日12时01分34秒ded2100 sshd [14947]:错误:绑定到端口22上::失败:地址已被使用。
今天我的服务器失败了 SSH也一样,需要一个硬重启,我想确保sshd是可靠的,所以我可以放心,如果它可以起来,它会起来。
谢谢。
编辑
我的sshd_config在这里 – https://gist.github.com/cbiggins/3cb4fcc1af25da63e89b1fab2eb7d57c
编辑#2
[root@ded2100 log]# ss -p -o state listening '( sport = :ssh )' Netid Recv-Q Send-Q Local Address:Port Peer Address:Port tcp 0 128 *:ssh *:* users:(("sshd",pid=1956,fd=3)) tcp 0 128 :::ssh :::* users:(("sshd",pid=1956,fd=4))
这是已知的bug , systemd无法跟踪RHEL7.3 / CentOS7.3的正在运行的服务。
尤其是,这是Type=forking的服务问题。 Systemd启动服务,检查PID文件(在某些情况下还未写入),并将服务视为失败。 然后尝试再次启动服务,这显然失败了。
更新正在进行中。 要一次性解决这个问题,只需要杀死正在运行的sshd (在你的情况下是1956 ),然后用systemctl start sshd启动一个新的。