Reinicie SSH en una máquina donde SSH es el único modo de acceso

29

He realizado algunos cambios en el archivo sshd_config y, por lo tanto, necesito reiniciar. Estoy buscando consejos para reiniciar ssh de forma segura cuando obtener acceso físico al servidor sería una gran PITA.

Mitch
fuente

Respuestas:

42

Reiniciar sshd mientras está conectado a través de ssh no desconectará su conexión ssh.

Si le preocupa su configuración, inicie sesión varias veces a través de ssh y reinicie. Si ya no puede ingresar, con nuevas conexiones, ahora tiene acceso para solucionar los problemas.

Mencionado a continuación en un comentario de @Milan Babuškov: sshd -tprobará su configuración para la corrección de la sintaxis, si realmente quiere estar seguro.

Otra sugerencia de @Ronald Pottol fue configurar una crontarea para reiniciar el servidor con una configuración de trabajo conocida. Tal vez exagere, pero si está actualizando un servidor de misión crítica, etc., a veces nunca puede ser demasiado cuidadoso.

cpbills
fuente
Eso es bastante fácil, tiene sentido también. Gracias por la respuesta realmente rápida. FYI, los cambios que estaba haciendo funcionaron genial;)
Mitch
6

Si tiene acceso al hardware, puede considerar colocar un terminal en el puerto serie / dev / ttyS0. Entonces puede tener una puerta trasera en su servidor.

simplemente agregue

SO:2345:respawn:/sbin/mingetty ttySO

a su / etc / inittab y se generará un terminal sobre su puerto serie. Puede usar un concentrador de puerto serie o un módem nulo del servidor al lado.

keithosu
fuente
¡Guay! ¿Es esta una práctica bastante estándar?
Mitch
3
Bastante estándar, siempre que tenga una forma de conectarse a la máquina que es el servidor de terminal en serie.
Kamil Kisiel
2
Puede ser, pero debido a la virtualización, no es tan necesario porque puede administrar a través del hipervisor. Otra cosa interesante es que si el BIOS lo admite es "Redirección de consola", esto mostrará todas las pantallas del BIOS a través de su consola en serie. GRUB también tiene la capacidad de mostrar en la consola serie. Por lo tanto, no hay necesidad de video remoto para ver si su servidor volverá a estar en línea.
keithosu
4

No se preocupe, su sesión actual no se desconectará, incluso si hay un problema con la nueva configuración.

Después de aplicar la nueva configuración y reiniciar sshd, solo intente iniciar sesión un par de veces y eche un vistazo a los registros para ver si todo está bien.

Marco Ramos
fuente
3

O bien, utilice un cron o en el trabajo para volver a iniciarlo, si tiene mala suerte.

Ronald Pottol
fuente
crono atfuncionaría, para copiar un trabajo 'conocido', es decir, la configuración anterior, volver y luego reiniciar el servicio ...
cpbills
0

He descubierto que hoy en día sshdno desconecta sus sesiones al reiniciar, especialmente cuando se trata de una distribución basada en Redhat. Siempre podría escribir un pequeño script que restaurará automáticamente su sshdconfiguración de la copia de seguridad y se reiniciará sshddespués de 5 minutos como crono attrabajo. Esto asegurará que, incluso si se desconecta, puede volver a su servidor al menos.

Riaan
fuente
-1

No recomendaría reiniciar / volver a cargar SSHD en una conexión sshd. He visto muchas ocasiones en las que sshd simplemente no se iniciaba debido a un error de sintaxis en sshd_config.

Aunque todo está bien con el archivo de configuración, es arriesgado.

Murat Arslan
fuente
9
Puede usar sshd -t para probar el archivo de configuración de antemano.
Milan Babuškov
Gracias Milán, busqué rápidamente en el hombre una opción como esa, en Apache es -s, así que debo haber estado demasiado concentrado en -s.
Mitch
Voy a absorber su comentario en mi respuesta, también cuando sshd termina, no elimina las sesiones ssh abiertas, pero es bueno saber que su sintaxis es válida, si la está sudando.
cpbills