El servidor SSH no funciona (reaparece hasta que se detiene)

12

Tengo un Ubuntu Server 10.04.1 en ejecución. Cuando intenté iniciar sesión en el servidor a través de ssh, no pude. En cambio, recibí un connection refusederror. Traté de hacer ping a la máquina y obtuve respuesta! Entonces, la razón clara es que el demonio SSH se detiene.

Después de reiniciar, pude iniciar sesión en mi servidor a través de ssh. Después de un tiempo, miré mis registros /var/log/syslogy encontré los siguientes registros:

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

Busqué un problema / solución similar. Algunas personas dijeron que esto es causado por el demonio SSH tratando de empezar antes de la creación de redes y sugieren que el cambio ListenAddressen el /etc/ssh/sshd_configser 0.0.0.0. Creo que esta no es la causa en mi caso, porque mi problema ocurre después de que el sistema está funcionando.

¿Alguna idea que está causando esto? Este es Ubuntu Server y debería ejecutarse y acceder a él de forma remota mediante SSH.

ACTUALIZAR:

Aquí está el fragmento de registro que encontré en /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.

Parece que este error comenzó a aparecer después de que volví a cargar el demonio SSH. ¿Debo evitar usar ssh reloady usar ssh restarten su lugar?

Khaled
fuente
También revisa este. Puede ser un problema con sshd_config sintaxis bugs.launchpad.net/ubuntu/+source/openssh/+bug/911753

Respuestas:

7

Debería verificar qué sucedió justo antes de que SSH comenzara a tambalearse syslog. Si el subsistema de red murió, eso podría explicar por qué sshdcomenzó a fallar.

También lo comprobaría /var/log/auth.log. Es el sshdregistro y puede darle un mejor mensaje de error.

Oli
fuente
¡Gracias! Encontré muchas entradas en el auth.logarchivo y actualicé mi pregunta.
Khaled
reloadDebería ser una acción válida. Se debe desencadenar un reinicio interno (y parece que han intentado eso y sólo quedó atascado). Intente volver a cargar y ver si se atasca nuevamente.
Oli
de hecho, la recarga debería ser válida, pero hay un error. Vea mi respuesta para más información.
SpamapS
16

Acabo de tener el mismo problema en mi caja 12.04. Es decir, los mismos síntomas. Por desgracia, siempre sucedió cuando introduje la ListenAddresscláusula con las direcciones inety . En resumen, esto parece ser un síntoma de una forma incorrecta , aunque los archivos de registro no indicaron nada de eso.inet6sshd_configsshd_config

Solución de problemas sshd

En general, lo que encuentro muy útil en tales casos es comenzar sshdsin dejar que demonice. El problema en mi caso fue que ni syslogtampoco auth.logmostró nada significativo.

Cuando lo comencé desde la terminal obtuve:

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

¡Mucho mejor! Este mensaje de error me permitió ver qué está mal y solucionarlo. Ninguno de los archivos de registro contenía esta salida.

NB: al menos en Ubuntu, este $(which sshd)es el mejor método para satisfacer los sshdrequisitos de una ruta absoluta. De lo contrario obtendrá el siguiente error: sshd re-exec requires execution with an absolute path. Esto -p 10222hace que sshdescuche en ese puerto alternativo, anulando el archivo de configuración; esto es para que no choque con sshdinstancias potencialmente en ejecución . Asegúrese de elegir un puerto libre aquí.

Este método me ha ayudado muchas veces a encontrar problemas, ya sean problemas de autenticación u otros tipos. Para obtener resultados realmente detallados stdout, use $(which sshd) -Ddddp 10222(tenga en cuenta lo agregado ddpara aumentar la verbosidad). Para más depuración, verifique la bondad man sshd.


La principal ventaja de este método es que le permite verificar la sshdconfiguración sin tener que reiniciar sshden el puerto predeterminado. Normalmente esto no debería interferir con las conexiones SSH existentes, pero lo he visto. Entonces, esto permite validar el archivo de configuración antes de, potencialmente, cortar el acceso a un servidor remoto (por ejemplo, tengo eso para algunos VPS e incluso para servidores físicos donde necesito pagar extra para obtener acceso fuera de banda a la máquina).

0xC0000022L
fuente
3
Tu truco de invocación directa acaba de salvar mi tocino. Tuve un error en mi archivo sshd_config (generado por Chef) que pude resolver usando esta técnica. GRACIAS por tomarse el tiempo de publicarlo para todos.
Peter Laird
4

Esto parece ser el resultado del error # 687535, que se corrigió recientemente en natty, y se ha subido a Maverick y Lucid como una actualización propuesta.

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

Recomiendo a todos que vayan allí, prueben el caso de prueba (busque TEST CASE) y publiquen sus resultados antes y después de instalar la solución propuesta. Eso ayudará al equipo de SRU a decidir que se realizó la verificación y a publicarla como una actualización.

SpamapS
fuente
2

En /etc/ssh/sshd_config, asegúrese de que todas las opciones sí y no estén en minúsculas. Por ejemplo, si configura PermitRootLogin No, ssh no se iniciará. En realidad tiene que ser PermitRootLogin no.

Fluir
fuente
1

Tuve un problema similar con una imagen de Ubuntu 11.10 en un Linode después de reiniciar. El servicio ssh produciría en 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

Es una caja de prueba, y tenía unos 60 días de tiempo de actividad, por lo que en algún lugar del camino, instalé algo que se adjuntó al final de sshd_config:

ClientAliveInterval 60
ClientCountAliveMax 60

Comentar esas líneas permitió que ssh comenzara.

joe
fuente
0

Ubuntu ssh no se inició y syslog produjo "init: el proceso principal ssh (2044) finalizó con el estado 255"

/ usr / sbin / sshd -Ddp 10222

Seguro funcionó para mí para determinar el error de línea sshd_config

usuario652460
fuente
-1

tengo el mismo problema, la solución superior no funciona, pero tengo una solución para esto.

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

La ruta está bien según el documento, por lo que ejecuto manualmente sshd.

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

El permiso / var / run / sshd es.

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

entonces está bien. ejecute ssh localhost y verifique.

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
fuente
1
Si bien esta es una guía útil, obviamente no es lo que llevó a que los OP sshdno se ejecuten correctamente, como puede ver en los mensajes de error muy diferentes en sus registros. -1
David Foerster