Der sshd-Dienst startet nicht

27

Ich bin nicht sicher, warum es nicht startet oder warum es mich daran hindert, eine Verbindung herzustellen. Ich erhalte folgenden Fehler:

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.

Auf Anraten von #amrith habe ich sshd -t ausgeführt, was darauf hinweist, dass der Schlüssel nicht generiert wurde. Ich habe dies unter Verwendung von ssh-keygen-A auf Empfehlung in diesem Forum generiert. Dann hat das Ausführen von systemctl status gezeigt, dass der Daemon immer noch nicht ausgeführt wird. Ich habe den Fehler unten angehängt, leider weiß ich nicht, ob sshd -t jetzt keine Nachrichten mehr ausgibt.

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.
aCoolBean
quelle

Antworten:

31

Versuchen Sie es mit sshd -t (dem sshd-Testmodus). Es kann Sie auf einen Grund für das Scheitern hinweisen.

Wenden Sie sich an den Testmodus Dokumentation hier .

amrith
quelle
15

Das Problem war in unserem Fall, dass wir einen nicht standardmäßigen Port für SSH verwenden. SELinux kann einschränken, welche Ports von einem Dienst verwendet werden können. Anscheinend wird es manchmal verwirrt und vergisst, dass wir diesen Hafen zugelassen hatten?

Wir mussten den folgenden Befehl ausführen, um unseren Port (22222) zur Liste der verfügbaren Ports hinzuzufügen

semanage port -a -t ssh_port_t -p tcp 22222

Referenz: http://sharadchhetri.com/2014/10/15/centos-7-rhel-7-change-openssh-port-number-selinux-enabled/

Tommy McNeely
quelle
8

Nun, wenn Sie die SSH-Portnummer ändern, müssen Sie in CentOS 7 noch einige Dinge tun.

Ändern Sie die SSH-Portbearbeitungsdatei ssdh_config

vi /etc/ssh/sshd_config

Zum Beispiel wechseln Sie zu: Port 2323

SELINUX lässt nur Port 22 für ssh zu. Fügen Sie den neuen Portkontext 2323 hinzu. Wenn Sie ihn nicht installiert haben, gehen Sie wie folgt vor

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

Überprüfen Sie den Portkontext für ssh

semanage port -l | grep ssh

Starten Sie den SSHD-Dienst neu

systemctl restart sshd.service

Fügen Sie den Port zur Firewall hinzu

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

Firewall neu laden

firewall-cmd --reload

Überprüfen Sie das Abhören

ss -tnlp|grep ssh

Versuchen Sie erneut, eine Verbindung über ssh herzustellen

ssh root@<ipaddr> -p 2323
Windschatten
quelle
3

Ich hatte auch dieses Problem, löste es aber. Meine Konfiguration ist unten.

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

Der Dienst konnte nicht gestartet werden, daher habe ich die letzte Zeile ( #ListenAddress 192.168.1.23) auskommentiert und meinen Server erfolgreich gestartet.

Hinweis: Ich habe die Firewall (iptables) und SELinux deaktiviert.

Ravikanth
quelle
2

Möglicherweise möchten Sie die folgende Einstellung verwenden:

RestartSec=5s

Dadurch wird Ihre Anwendung vor einem Neustart für 5 Sekunden in den Ruhezustand versetzt. Sie können natürlich die Anzahl der Einstellungen variieren.

Einzelheiten finden Sie hier :

Boris Epstein
quelle
Ich habe diese Antwort positiv bewertet, da sie nützliche Informationen zur Behebung des Problems enthält, wenn das Problem in systemd und nicht im eigentlichen Dienst vorliegt (sshd im OP-Fall). Ich hatte Dienste mit restart = immer fehlschlagen und nicht mehrmals neu gestartet werden. Diese Antwort könnte das Problem mit systemd tatsächlich lösen. (Obwohl es nicht direkt mit der OP-Frage zusammenhängt).
MattBianco
1

Cannot bind any address

Wenn es versucht, eine Bindung an einen Port (z. B. standardmäßig: 22) unter 1024 herzustellen, benötigt es dafür das Root-Privileg. Bist du service sshd startals root gelaufen oder so? Versuchen Sie, die Konfigurationsdatei sshd.conf zu bearbeiten, setzen Sie die Bindungsadresse auf einen Port größer als 1024 (z. B. 1122) und führen Sie sie als einfacher Benutzer aus!

David Lakatos
quelle
1

Ich hatte das gleiche Problem und die einfachste Lösung war, opensshes wieder zu entfernen und zu installieren.

 yum remove openssh

und dann:

 yum install openssh openssh-server openssh-clients

dann können Sie den sshdService starten :

 service sshd start
Ali Hashemi
quelle
-1

Ich hatte das gleiche problem Nur SELinux deaktiviert!

tquang
quelle
-1

Folge einfach diesem,

mkdir -p /var/run/sshd

und

/usr/sbin/sshd -ddd

Dies sollte Ihr Problem beheben.

Aman Juman
quelle
1
Warum sollte das eine Lösung für das Problem sein, das das OP hatte?
HBruijn
1
Ich habe ein ähnliches Problem in OpenVZ. Ich folgte, um das Problem zu beheben.
Aman Juman