sshd服务无法启动


27

我不确定为什么它没有启动或者为什么它阻止了我的连接,我得到了这个错误:

sshd.service - OpenSSH Daemon
    Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled)
   Active: failed (Result: start-limit) since Wed 2013-09-11 08:45:13 BST; 1min 21s ago
  Process: 701 ExecStart=/usr/bin/sshd -D (code=exited, status=1/FAILURE)

Sep 11 08:45:13 alarmpi systemd[1]: sshd.service: main process exited, code=exited, status=1/FAILURE
Sep 11 08:45:13 alarmpi systemd[1]: Unit sshd.service entered failed state.
Sep 11 08:45:13 alarmpi systemd[1]: sshd.service holdoff time over, scheduling restart.
Sep 11 08:45:13 alarmpi systemd[1]: Stopping OpenSSH Daemon...
Sep 11 08:45:13 alarmpi systemd[1]: Starting OpenSSH Daemon...
Sep 11 08:45:13 alarmpi systemd[1]: sshd.service start request repeated too quickly,    refusing to start.
Sep 11 08:45:13 alarmpi systemd[1]: Failed to start OpenSSH Daemon.
Sep 11 08:45:13 alarmpi systemd[1]: Unit sshd.service entered failed state.

在#amrith的建议下,我运行了sshd -t,它表明密钥尚未生成。我根据该论坛中提供的建议使用ssh-keygen -A生成了该文件,然后运行systemctl status表示我仍未运行守护程序。我在下面附加了错误,可悲的是,我不知道ho重新运行sshd -t现在没有消息。

sshd.service - OpenSSH Daemon
   Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled)
   Active: inactive (dead)

Sep 11 12:04:42 alarmpi systemd[1]: Started OpenSSH Daemon.
Sep 11 12:04:42 alarmpi sshd[289]: fatal: Cannot bind any address.
Sep 11 12:04:42 alarmpi systemd[1]: sshd.service: main process exited, code=exited, status=255/n/a
Sep 11 12:04:42 alarmpi systemd[1]: Unit sshd.service entered failed state.
Sep 11 12:04:42 alarmpi systemd[1]: sshd.service holdoff time over, scheduling restart.
Sep 11 12:04:42 alarmpi systemd[1]: Stopping OpenSSH Daemon...
Sep 11 12:04:42 alarmpi systemd[1]: Starting OpenSSH Daemon...
Sep 11 12:04:42 alarmpi systemd[1]: sshd.service start request repeated too quickly, refusing to start.
Sep 11 12:04:42 alarmpi systemd[1]: Failed to start OpenSSH Daemon.
Sep 11 12:04:42 alarmpi systemd[1]: Unit sshd.service entered failed state.

Answers:


31

尝试使用sshd -t(sshd测试模式)。它可能会指出您失败的原因。

请参考此处的测试模式文档。



8

好吧,如果您更改SSH端口号,则必须在CentOS 7中做更多的事情。

更改SSH端口编辑ssdh_config文件

vi /etc/ssh/sshd_config

例如,更改为:端口2323

SELINUX仅允许端口22用于ssh。添加新的端口上下文2323。如果尚未安装,请执行以下操作

yum -y install policycoreutils-python
semanage port -a -t ssh_port_t -p tcp 2323

检查端口上下文中的ssh

semanage port -l | grep ssh

重新启动SSHD服务

systemctl restart sshd.service

将端口添加到防火墙

firewall-cmd --permanent --zone=public --add-port=2323/tcp

重新加载防火墙

firewall-cmd --reload

检查听力

ss -tnlp|grep ssh

尝试通过ssh重新连接

ssh root@<ipaddr> -p 2323

3

我也有这个问题,但解决了。我的配置如下。

PermitRootLogin no
port 22
MaxAuthTries 3
MaxSessions 2
AllowUsers ravikanth
AddressFamily any
ListenAddress 192.168.1.23

服务无法启动,因此我刚刚注释了最后一行(#ListenAddress 192.168.1.23),然后服务器成功启动。

注意:我已经关闭了防火墙(iptables)和SELinux。


2

您可能要尝试使用以下设置:

RestartSec=5s

这将迫使您的应用程序在尝试重新启动之前进入休眠状态5秒钟。您显然可以改变设置的数量。

详细信息请参见此处


我赞成这个答案,因为它包含有关在问题出在systemd中而不是实际服务时的解决方法的有用信息(在OP情况下为sshd)。我有几次带有restart = always的服务,总是失败,并且没有重新启动。这个答案实际上可以使用systemd解决该问题。(尽管它与OP问题没有直接关系)。
MattBianco

1

Cannot bind any address

如果它试图绑定到1024以下的端口(例如,默认情况下:22),则需要root特权。您是否service sshd start以root用户身份运行或类似的东西?尝试编辑sshd.conf配置文件,将绑定地址设置为大于1024的端口(例如1122),然后以简单用户身份运行它!


1

我遇到了同样的问题,最简单的解决方法是删除openssh并重新安装。

 yum remove openssh

然后:

 yum install openssh openssh-server openssh-clients

然后即可开始sshd服务:

 service sshd start

-1

我有同样的问题。刚刚禁用了SELinux!


-1

只要遵循这个,

mkdir -p /var/run/sshd

/usr/sbin/sshd -ddd

这应该可以解决您的问题。


1
为什么这应该是OP所遇到问题的解决方案?
HBruijn

1
我在OpenVZ中有一个类似的问题。我遵循的是解决此问题。
阿曼·朱曼
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.