Yo uso ssh -p8520 username@remote_host
para iniciar sesión en el servidor remoto.
Problema :
Siempre está conectado y funciona correctamente cuando estoy en el lugar de trabajo. Desafortunadamente, la terminal se congela en 10-15 minutos después de conectarme con el servidor remoto desde casa.
No hay un informe de error / tiempo de espera en la consola, pero el cursor no puede moverse más.
Cuando ingrese wpara verificar los usuarios de inicio de sesión, algunos usuarios de inicio de sesión de zombies están allí, y tengo que matarlos manualmente.
Esto es bastante molesto. ¿Alguien puede ayudarme?
screen
. Tal vez esto sea algún tipo de problema de tiempo de espera.screen
ayuda a mantener el programa en ejecución. Lamentablemente, a veces tengo que trabajar en el servidor remoto :(screen
solo? ¿Puede resolver el problema de conexión perdida? Noscreen -S screenName
? Siempre uso la pantalla con-S
y-r
screen
. Parece que ya lo sabes;)Respuestas:
El demonio ssh (sshd), que se ejecuta en el lado del servidor, cierra la conexión desde el lado del servidor si el cliente se queda en silencio (es decir, no envía información). Para evitar la pérdida de conexión, indique al cliente ssh que envíe una señal de señal de vida al servidor de vez en cuando.
La configuración para esto está en el archivo
$HOME/.ssh/config
, cree el archivo si no existe (el archivo de configuración no debe ser legible en todo el mundo, por lo tanto, ejecútelochmod 600 ~/.ssh/config
después de crear el archivo). Para enviar la señal cada cuatro minutos (240 segundos) al host remoto, coloque lo siguiente en ese archivo de configuración:Para habilitar el envío de una señal de mantenimiento para todos los hosts, coloque el siguiente contenido en el archivo de configuración:
fuente
ServerAliveInterval
mientras el servidor usaClientAliveInterval
. Que desastre.Quería una solución única:
Lo almacené en un alias:
Ahora puedes conectarte así:
fuente
Host *
&ServerAliveInterval 240
(o especificar el nombre de host, si solo lo desea[email protected]
como en la respuesta de rockymonkey555? Establecer un alias no parece más fácil de ninguna manera.alias ssh='ssh -o ServerAliveInterval=60'
ServerAliveInterval
a60
, genial. Sin embargo, usar un alias bash cuando podría estar usando.ssh/config
es una tontería.Para aquellos que se preguntan, @ edward-coast
Si desea configurar la función de mantenimiento para el servidor , agregue esto a
/etc/ssh/sshd_config
:fuente
ClientAliveInterval
para permitir que el servidor verifique si el cliente está vivo, o debo dejar que el cliente haga "ping" al servidorServerAliveInterval
repetidamente? Ambos no parece que tiene sentidoClientAliveInterval
en el servidor si desea que el servidor se desconecte en conexiones inactivas que no responden, y puede personalizar con qué frecuencia y cuándo sucede eso.FYI Putty Users puede configurar las opciones aquí
fuente
Podemos mantener viva nuestra conexión ssh teniendo las siguientes configuraciones globales
Agregue la siguiente línea al
/etc/ssh/ssh_config
archivo:fuente