le service sshd ne démarre pas

27

Je ne sais pas pourquoi il ne démarre pas ou pourquoi cela m'empêche de me connecter, j'obtiens cette erreur:

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.

Sur les conseils de #amrith, j'ai exécuté sshd -t qui a indiqué que la clé n'avait pas été générée. J'ai généré cela à l'aide de ssh-keygen -A sur les conseils donnés dans ce forum, puis l'exécution du statut systemctl a montré que je n'exécutais toujours pas le démon. J'ai joint l'erreur ci-dessous, malheureusement je ne sais pas ho La relance de sshd -t ne donne aucun message maintenant.

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
la source

Réponses:

31

Essayez sshd -t (le mode de test sshd). Cela peut vous indiquer une raison d'échec.

Reportez-vous à la documentation du mode test ici .

amrith
la source
15

Le problème, dans notre cas, était que nous utilisons un port non standard pour SSH. SELinux peut restreindre les ports pouvant être utilisés par un service. Apparemment, cela devient parfois confus et oublie que nous avions autorisé ce port?

Nous avons dû émettre la commande suivante pour ajouter notre port (22222) à la liste des ports disponibles

semanage port -a -t ssh_port_t -p tcp 22222

Référence: http://sharadchhetri.com/2014/10/15/centos-7-rhel-7-change-openssh-port-number-selinux-enabled/

Tommy McNeely
la source
8

Eh bien, si vous changez le numéro de port SSH, vous devez faire plus de choses dans CentOS 7.

Changer le fichier ssdh_config d'édition du port SSH

vi /etc/ssh/sshd_config

Par exemple, changez pour: Port 2323

SELINUX autorise uniquement le port 22 pour ssh. Ajouter un nouveau contexte de port 2323. Si vous ne l'avez pas installé, procédez comme suit

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

Vérifiez le contexte du port pour ssh

semanage port -l | grep ssh

Redémarrez le service SSHD

systemctl restart sshd.service

Ajoutez le port au pare-feu

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

Recharger le pare-feu

firewall-cmd --reload

Vérifier l'écoute

ss -tnlp|grep ssh

Essayez de vous reconnecter via ssh

ssh root@<ipaddr> -p 2323
Slipstream
la source
3

J'ai également eu ce problème mais je l'ai résolu. Ma configuration est ci-dessous.

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

Le service n'a pas pu démarrer, je viens de commenter la dernière ligne ( #ListenAddress 192.168.1.23), puis mon serveur a démarré avec succès.

Remarque: j'ai désactivé le pare-feu (iptables) et SELinux.

ravikanth
la source
2

Vous pouvez essayer d'utiliser le paramètre suivant:

RestartSec=5s

Cela forcerait votre application à se mettre en veille pendant 5 secondes avant une tentative de redémarrage. Vous pouvez évidemment faire varier le nombre de paramètres.

Voir ici pour plus de détails:

Boris Epstein
la source
J'ai voté pour cette réponse, car elle contient des informations utiles sur la façon de résoudre le problème lorsque le problème est dans systemd et non le service réel (sshd dans le cas OP). J'ai eu des services avec redémarrage = toujours échouer et ne pas être redémarré plusieurs fois. Cette réponse pourrait en fait résoudre ce problème avec systemd. (Bien que cela ne soit pas directement lié à la question OP).
MattBianco
1

Cannot bind any address

S'il essaie de se lier à un port (par exemple, par défaut: 22) en dessous de 1024, il a besoin du privilège root pour le faire. Avez-vous exécuté service sshd startou quelque chose comme ça en tant que root? Essayez de modifier le fichier de configuration sshd.conf, définissez l'adresse de liaison sur un port supérieur à 1024 (par exemple 1122) et exécutez-le en tant qu'utilisateur simple!

David Lakatos
la source
1

J'ai eu le même problème et la solution la plus simple que j'ai trouvée a été de la supprimer opensshet de la réinstaller.

 yum remove openssh

et alors:

 yum install openssh openssh-server openssh-clients

alors vous pouvez démarrer le sshdservice:

 service sshd start
Ali Hashemi
la source
0

J'ai eu le même problème. SELinux vient d'être désactivé!

tquang
la source
-1

Suivez juste ceci,

mkdir -p /var/run/sshd

et

/usr/sbin/sshd -ddd

Cela devrait résoudre votre problème.

Aman Juman
la source
1
Pourquoi cela devrait-il être une solution au problème du PO?
HBruijn
1
J'ai un problème similaire dans OpenVZ. J'ai suivi c'était pour résoudre le problème.
Aman Juman