Sesión tipo SSH que sobrevive a la desconexión física de la red

Sesión tipo SSH que sobrevive a la desconexión física de la red

Quiero que mi sesión de inicio de sesión SSH permanezca conectada después de que la computadora entre en suspensión y se active. Por lo que tengo entendido, TCP puede sobrevivir a problemas de red intermitentes, entonces, ¿puedo cambiar la configuración para que pueda sobrevivir durante algunas horas o días? Si no, ¿hay algo similar a SSH que pueda hacer eso?

Entiendo que puedo configurar SSH para reconectarme automáticamente cuando la red vuelva a estar disponible. Pero esto no es ideal porque quiero que mi sesión de inicio de sesión esté exactamente en el mismo lugar donde estaba antes de que la computadora portátil entrara en modo de suspensión (incluso si está a la mitad de escribir algo en la línea de comando del shell).

entiendo que hay otrossoluciones, pero esperaba que hubiera una manera de evitar perder la sesión de shell en primer lugar.

Respuesta1

Una conexión TCP debería poder sobrevivir a la desconexión, pero algunos cortafuegos demasiado entusiastas pueden eliminar conexiones inactivas y no sobrevivirá al cambio de dirección IP, si eso puede suceder.

Para sesiones interactivas, ejecutaríamosh. Implementa una conexión de terminal tipo SSH a través de UDP, admite la reconexión desde otra dirección IP si es necesario y tiene algunas características para admitir conexiones inestables.

Independientemente de si decide utilizar SSH o Mosh, utilicepantallaotmuxtambién para que su sesión sea independiente de la conexión.

Respuesta2

screeno tmuxson definitivamente el camino a seguir. La sshconexión se convierte entonces en sólo un medio para un fin y ya no importa (dentro de lo razonable) la frecuencia con la que se interrumpe cuando está inactiva.

Si le molesta tener que recordar iniciar screencuando inicia sesión en el servidor remoto, no sería tan difícil tener una sesión interactiva que se una automáticamente a una existente screeno iniciar una nueva si no hubiera ninguna ya ejecutándose.

Respuesta3

rocas(Reliable sOCKetS) es un contenedor para programas que realizan conexiones TCP de clientes, que detecta cuando falla la conexión TCP y reconecta automáticamente al cliente, incluso si se mueve a una red diferente. Fue descrito en el documento.Conexiones de red confiablesy esdisponible para descarga. No recibe mantenimiento, pero utiliza interfaces bastante estables, por lo que aún debería funcionar hoy. Utiliza la precarga de la biblioteca ( LD_PRELOAD) para simular las funciones de la biblioteca estándar, por lo que solo funciona con ejecutables vinculados dinámicamente. Simplemente ejecútalo como

rocks ssh …

Rocks maneja la movilidad del cliente, no la movilidad del servidor. Si el servidor se mueve, es posible que quieras complementarlo con unMEDIASapoderado.

Para una sesión interactiva, una buena alternativa esmosh. Está diseñado para conexiones no confiables y admite la movilidad del cliente. Mosh pierde datos si la conexión no es confiable, por lo que solo se puede utilizar para sesiones interactivas.

Una alternativa a Mosh si tiene una conexión mayoritariamente confiable, pero que se mueve ocasionalmente, esautosshpara reconectarse automáticamente, ypantallaotmuxejecutándose en el servidor. La sesión screen/tmux permanece en el servidor incluso si el cliente se desconecta, y autossh se vuelve a conectar automáticamente si la conexión se corta.

información relacionada