Le serveur SSH ne fonctionne pas (réapparaît jusqu'à l'arrêt)

12

J'ai un serveur Ubuntu 10.04.1 en cours d'exécution. Lorsque j'ai essayé de me connecter au serveur via ssh, je n'ai pas pu. Au lieu de cela, j'ai eu une connection refusederreur. J'ai essayé de cingler la machine et j'ai reçu la réponse! Donc, la raison claire est que le démon SSH est arrêté.

Après le redémarrage, j'ai pu me connecter à mon serveur via ssh. Après un certain temps, j'ai regardé mes journaux /var/log/sysloget trouvé les enregistrements suivants:

Jan 16 10:57:09 myserver init: ssh main process ended, respawning
Jan 16 10:57:09 myserver init: ssh main process (2465) terminated with status 255
Jan 16 10:57:09 myserver init: ssh main process ended, respawning
Jan 16 10:57:09 myserver init: ssh main process (2469) terminated with status 255
Jan 16 10:57:09 myserver init: ssh main process ended, respawning
Jan 16 10:57:09 myserver init: ssh main process (2473) terminated with status 255
Jan 16 10:57:09 myserver init: ssh main process ended, respawning
Jan 16 10:57:09 myserver init: ssh main process (2477) terminated with status 255
Jan 16 10:57:09 myserver init: ssh main process ended, respawning
Jan 16 10:57:09 myserver init: ssh main process (2481) terminated with status 255
Jan 16 10:57:09 myserver init: ssh main process ended, respawning
Jan 16 10:57:09 myserver init: ssh main process (2485) terminated with status 255
Jan 16 10:57:09 myserver init: ssh main process ended, respawning
Jan 16 10:57:09 myserver init: ssh main process (2489) terminated with status 255
Jan 16 10:57:09 myserver init: ssh main process ended, respawning
Jan 16 10:57:09 myserver init: ssh main process (2493) terminated with status 255
Jan 16 10:57:09 myserver init: ssh main process ended, respawning
Jan 16 10:57:09 myserver init: ssh main process (2497) terminated with status 255
Jan 16 10:57:09 myserver init: ssh main process ended, respawning
Jan 16 10:57:09 myserver init: ssh main process (2501) terminated with status 255
Jan 16 10:57:09 myserver init: ssh respawning too fast, stopped

J'ai cherché un problème / solution similaire. Certaines personnes ont dit que cela est causé par le démon SSH essayer de démarrer avant la mise en réseau et ils suggèrent au changement ListenAddressdans /etc/ssh/sshd_configêtre 0.0.0.0. Je pense que ce n'est pas la cause dans mon cas, car mon problème se produit après que le système est opérationnel.

Une idée de ce qui cause ça? Il s'agit d'Ubuntu Server et il devrait être exécuté et accessible à distance en utilisant SSH.

MISE À JOUR:

Voici l'extrait de journal que j'ai trouvé dans /var/log/auth.log.

Jan 16 10:56:38 myserver sudo:     user : TTY=pts/0 ; PWD=/home/user ; USER=root ; COMMAND=/usr/bin/vim /etc/ssh/sshd_config
Jan 16 10:57:09 myserver sudo:     user : TTY=pts/0 ; PWD=/home/user ; USER=root ; COMMAND=/etc/init.d/ssh reload
Jan 16 10:57:09 myserver sshd[1465]: Received SIGHUP; restarting.
Jan 16 10:57:09 myserver sshd[2461]: Server listening on 0.0.0.0 port 22.
Jan 16 10:57:09 myserver sshd[2465]: error: Bind to port 22 on 0.0.0.0 failed: Address already in use.
Jan 16 10:57:09 myserver sshd[2465]: fatal: Cannot bind any address.
Jan 16 10:57:09 myserver sshd[2469]: error: Bind to port 22 on 0.0.0.0 failed: Address already in use.
Jan 16 10:57:09 myserver sshd[2469]: fatal: Cannot bind any address.
Jan 16 10:57:09 myserver sshd[2473]: error: Bind to port 22 on 0.0.0.0 failed: Address already in use.
Jan 16 10:57:09 myserver sshd[2473]: fatal: Cannot bind any address.
Jan 16 10:57:09 myserver sshd[2477]: error: Bind to port 22 on 0.0.0.0 failed: Address already in use.
Jan 16 10:57:09 myserver sshd[2477]: fatal: Cannot bind any address.
Jan 16 10:57:09 myserver sshd[2481]: error: Bind to port 22 on 0.0.0.0 failed: Address already in use.
Jan 16 10:57:09 myserver sshd[2481]: fatal: Cannot bind any address.
Jan 16 10:57:09 myserver sshd[2485]: error: Bind to port 22 on 0.0.0.0 failed: Address already in use.
Jan 16 10:57:09 myserver sshd[2485]: fatal: Cannot bind any address.
Jan 16 10:57:09 myserver sshd[2489]: error: Bind to port 22 on 0.0.0.0 failed: Address already in use.
Jan 16 10:57:09 myserver sshd[2489]: fatal: Cannot bind any address.
Jan 16 10:57:09 myserver sshd[2493]: error: Bind to port 22 on 0.0.0.0 failed: Address already in use.
Jan 16 10:57:09 myserver sshd[2493]: fatal: Cannot bind any address.
Jan 16 10:57:09 myserver sshd[2497]: error: Bind to port 22 on 0.0.0.0 failed: Address already in use.
Jan 16 10:57:09 myserver sshd[2497]: fatal: Cannot bind any address.
Jan 16 10:57:09 myserver sshd[2501]: error: Bind to port 22 on 0.0.0.0 failed: Address already in use.
Jan 16 10:57:09 myserver sshd[2501]: fatal: Cannot bind any address.

Il semble que cette erreur ait commencé à apparaître après avoir rechargé le démon SSH. Dois-je éviter d'utiliser ssh reloadet utiliser à la ssh restartplace?

Khaled
la source
Vérifiez également celui-ci. Il peut s'agir d'un problème avec sshd_config sintaxis bugs.launchpad.net/ubuntu/+source/openssh/+bug/911753

Réponses:

7

Vous devriez vérifier pour voir ce qui s'est passé juste avant que SSH ne commence à patauger syslog. Si le sous-système de mise en réseau est mort, cela pourrait expliquer pourquoi a sshdcommencé à échouer.

Je vérifierais aussi /var/log/auth.log. C'est le sshdjournal et cela pourrait vous donner un meilleur message d'erreur.

Oli
la source
Merci! J'ai trouvé de nombreuses entrées dans le auth.logfichier et j'ai mis à jour ma question.
Khaled
reloaddevrait être une action valide. Il devrait déclencher un redémarrage interne (et il semble avoir tenté cela et juste être bloqué). Essayez de recharger à nouveau et voyez s'il se bloque à nouveau.
Oli
en effet, le rechargement doit être valide, mais il y a un bug. Voir ma réponse pour plus d'informations.
SpamapS
16

Je viens d'avoir le même problème sur ma box 12.04. C'est à dire les mêmes symptômes. Hélas, cela arrivait toujours lorsque j'introduisais la ListenAddressclause avec les adresses inetet inet6dans sshd_config. En bref, cela semble être un symptôme d'une forme incorrecte sshd_config- bien que les fichiers journaux n'indiquent rien de tel.

Dépannage sshd

Ce que je trouve généralement très utile dans de tels cas, c'est de commencer sshdsans le laisser démoniser. Le problème dans mon cas était que ni syslogni auth.logmontré quoi que ce soit de significatif.

Quand je l'ai démarré depuis le terminal, j'ai eu:

# $(which sshd) -Ddp 10222
/etc/ssh/sshd_config line 8: address family must be specified before ListenAddress.

Bien mieux! Ce message d'erreur m'a permis de voir ce qui ne va pas et de le corriger. Aucun des fichiers journaux ne contenait cette sortie.

NB: au moins sur Ubuntu, $(which sshd)c'est la meilleure méthode pour satisfaire l' sshdexigence d'un chemin absolu. Sinon , vous aurez l'erreur suivante: sshd re-exec requires execution with an absolute path. Le -p 10222fait sshdécouter sur ce port alternatif, remplaçant le fichier de configuration - c'est pour qu'il ne se heurte pas aux sshdinstances potentiellement en cours d'exécution . Assurez-vous de choisir un port gratuit ici.

Cette méthode m'a aidé plusieurs fois à trouver des problèmes, que ce soit des problèmes d'authentification ou d'autres types. Pour obtenir une sortie vraiment verbeuse stdout, utilisez $(which sshd) -Ddddp 10222(notez l'ajout ddpour augmenter la verbosité). Pour plus de débogage, vérifiez la qualité man sshd.


Le principal avantage de cette méthode est qu'elle vous permet de vérifier la sshdconfiguration sans avoir à redémarrer le sshdsur le port par défaut. Normalement, cela ne devrait pas interférer avec les connexions SSH existantes, mais je l'ai vu. Cela permet donc de valider le fichier de configuration avant - potentiellement - de couper l'accès à un serveur distant (par exemple, je l'ai pour certains VPS et même pour les serveurs physiques où je dois payer un supplément pour obtenir un accès hors bande à la machine).

0xC0000022L
la source
3
Votre astuce d'invocation directe vient de sauver mon bacon. J'ai eu une erreur dans mon fichier sshd_config (généré à partir de Chef) que j'ai pu résoudre en utilisant cette technique. MERCI d'avoir pris le temps de le poster à tout le monde.
Peter Laird
4

Cela semble être le résultat du bogue # 687535, qui a été corrigé récemment dans natty, et a été téléchargé sur maverick et lucid en tant que mise à jour proposée.

https://bugs.launchpad.net/ubuntu/lucid/+source/openssh/+bug/687535

J'encourage tout le monde à s'y rendre, à essayer le cas de test (rechercher CAS DE TEST) et à publier vos résultats avant et après l'installation du correctif proposé. Cela aidera l'équipe SRU à décider que la vérification a été effectuée et à la publier en tant que mise à jour.

SpamapS
la source
2

Dans /etc/ssh/sshd_config, assurez-vous que toutes les options oui et non sont en minuscules. Par exemple, si vous définissez PermitRootLogin No,, ssh ne démarre pas. Il faut que ce soit le cas PermitRootLogin no.

Couler
la source
1

J'ai eu un problème similaire avec une image Ubuntu 11.10 sur un Linode après le redémarrage. Le service ssh produirait dans syslog:

Mar 18 06:31:33 servername kernel: init: ssh main process ended, respawning
Mar 18 06:31:33 servername kernel: init: ssh main process (3419) terminated with status 255
Mar 18 06:31:33 servername kernel: init: ssh main process ended, respawning
Mar 18 06:31:33 servername kernel: init: ssh main process (3422) terminated with status 255
Mar 18 06:31:33 servername kernel: init: ssh respawning too fast, stopped

C'est une boîte de test, et elle avait environ 60 jours de disponibilité, donc quelque part en cours de route, j'ai installé quelque chose qui s'est ajouté au bas de sshd_config:

ClientAliveInterval 60
ClientCountAliveMax 60

Le fait de commenter ces lignes a permis à ssh de démarrer.

Joe
la source
0

Ubuntu ssh ne démarre pas et syslog génère «init: ssh main process (2044) terminated with status 255»

/ usr / sbin / sshd -Ddp 10222

Bien sûr, a travaillé pour moi pour déterminer l'erreur de ligne sshd_config

user652460
la source
-1

a le même problème, la solution supérieure ne fonctionne pas, mais j'ai une solution pour cela.

root@imt:~# sshd
sshd re-exec requires execution with an absolute path
ssh localhost
ssh: connect to host localhost port 22: Network is unreachable

Le chemin est correct selon le document, donc je lance manuellement sshd.

root@imt:~# /usr/sbin/sshd 
/var/run/sshd must be owned by root and not group or world-writable

L'autorisation / var / run / sshd est.

root@imt:~# ls -ld /var/run/sshd
drwsrwsrwt 2 root root 40 Jan  5 12:58 /var/run/sshd

root@imt:~# chmod 755 /var/run/sshd

alors c'est bien. exécutez ssh localhost et vérifiez.

root@imt:~# ssh localhost 
The authenticity of host 'localhost (127.0.0.1)' can't be established.
RSA key fingerprint is 64:93:fd:ab:4c:f9:7b:8a:86:60:22:f7:56:fa:ea:cc.
Are you sure you want to continue connecting (yes/no)? yes
Vicky Dhindsa
la source
1
Bien qu'il s'agisse d'un guide utile, ce n'est évidemment pas ce qui a conduit à ce que les OP sshdne fonctionnent pas correctement, comme vous pouvez le voir à partir des messages d'erreur très différents dans leurs journaux. -1
David Foerster