GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo volver a conectarse a una sesión ssh desconectada

Solución 1:

Intente establecer ClientAliveInterval (p. ej., 60) y TCPKeepAlive (sí o no) en valores apropiados en el lado del servidor sshd.conf.

Esto debería mantener activa su sesión incluso si la conexión se pierde durante minutos.

Solución 2:

ACTUALIZACIÓN:para obtener una respuesta real, consulte la respuesta de zero_r a continuación

Esta no es una respuesta, sino una solución. Usar pantalla.

Cuando inicie sesión por primera vez, ejecute screen. Obtienes otro shell, ejecutas comandos en eso. Si está desconectado, el proceso de pantalla mantiene vivo el terminal para que su shell y los procesos que está ejecutando no se caigan. Cuando vuelva a conectarse, ejecute 'screen -r' para reanudar.

Hay mucho más para configurar y usar la pantalla, pero lo anterior debería solucionar su problema.

Solución 3:

Como se mencionó anteriormente, GNU Screen es el camino a seguir. Le permitirá tener una 'sesión de pantalla' en la caja remota en la que puede ejecutar múltiples comandos, a través de múltiples 'ventanas de pantalla'. Esto simplemente se desconectará si su conexión SSH principal muere, manteniendo vivos y en buen estado todos los subprocesos que se ejecutan dentro de ella.

'man screen ' es tu amigo como de costumbre, y el paquete del sistema operativo debería llamarse 'screen ' si no está instalado por defecto.

Los conceptos básicos son:

  • Inicie una sesión de pantalla (en su host remoto):

    $ screen
    
  • Desconéctese de su sesión de pantalla:CTRL-A , d

  • Vuelva a conectarse a su sesión de pantalla después de volver a iniciar sesión:

    $ screen -d -r
    
  • Abra otra pantalla 'ventana':CTRL-A , c

  • Recorra las ventanas de su pantalla abierta:CTRL-A , espacio

Hay muchos de cosas geniales que puedes hacer con Screen. Lo he estado usando durante más de 10 años y todavía estoy descubriendo nuevas funciones. Es mi utilidad Unix favorita.

Solución 4:

No puedo creer que nadie haya mencionado a MOSH;

Mosh es un protocolo separado que puede conectarse al proceso de inicio de sesión SSH, mantiene su sesión activa después de días de desconexión, cambio de IP, alta latencia, etc. Se explica en la página de inicio mejor de lo que puedo explicarlo, así que copié la descripción a continuación. Mi experiencia y consejo es que lo uso en mi móvil Android, es un salvavidas cuando viajo y hago SSH. Lo mismo ocurre con mi computadora portátil cuando está conectada con el móvil en el tren, por ejemplo. Recomiendo compilar desde la fuente para obtener la última versión, la versión de repositorio para mí dentro de Ubuntu tiene algunas molestias que se corrigieron en la versión más nueva (en el momento de escribir este artículo).

Mosh (carcasa móvil)

Aplicación de terminal remota que permite el roaming, admite conectividad intermitente y proporciona eco local inteligente y edición de línea de las pulsaciones de teclas del usuario.

Mosh es un reemplazo para SSH. Es más robusto y receptivo, especialmente a través de enlaces Wi-Fi, celulares y de larga distancia.

Mosh es un software gratuito, disponible para GNU/Linux, FreeBSD, Solaris, MacOS X y Android.

Características del sitio web:

  • Cambiar IP. Mantente conectado :Mosh se desplaza automáticamente a medida que se desplaza entre las conexiones a Internet. Use Wi-Fi en el tren, Ethernet en un hotel y LTE en la playa:permanecerá conectado. La mayoría de los programas de red pierden sus conexiones después del roaming, incluidos SSH y aplicaciones web como Gmail. Mosh es diferente.

  • Hace dulces sueños :Con Mosh, puede poner su computadora portátil en suspensión y reactivarla más tarde, manteniendo su conexión intacta. Si se cae su conexión a Internet, Mosh le avisará, pero la conexión se reanuda cuando vuelve el servicio de red.

  • Elimine el retraso de la red :SSH espera la respuesta del servidor antes de mostrarle su propia escritura. Eso puede hacer que la interfaz de usuario sea pésima. Mosh es diferente:da una respuesta instantánea al escribir, borrar y editar líneas. Lo hace de forma adaptativa y funciona incluso en programas de pantalla completa como emacs y vim. En una mala conexión, las predicciones sobresalientes se subrayan para que no se deje engañar.

  • Sin código privilegiado. Ningún demonio :No es necesario ser superusuario para instalar o ejecutar Mosh. El cliente y el servidor son ejecutables ejecutados por un usuario común y duran solo durante la vida de la conexión.

  • Mismo método de inicio de sesión :Mosh no escucha en los puertos de red ni autentica a los usuarios. El cliente mosh inicia sesión en el servidor a través de SSH y los usuarios presentan las mismas credenciales (por ejemplo, contraseña, clave pública) que antes. Luego, Mosh ejecuta el servidor mosh de forma remota y se conecta a él a través de UDP.

  • Se ejecuta dentro de tu terminal, pero mejor :Mosh es un programa de línea de comandos, como ssh. Puede usarlo dentro de xterm, gnome-terminal,urxvt, Terminal.app, iTerm, emacs, screen o tmux. Pero mosh fue diseñado desde cero y solo admite un conjunto de caracteres:UTF-8. Corrige errores de Unicode en otros terminales y en SSH.

  • Control-C funciona muy bien :A diferencia de SSH, el protocolo basado en UDP de mosh maneja la pérdida de paquetes con elegancia y establece la velocidad de fotogramas según las condiciones de la red. Mosh no llena los búferes de red, por lo que Control-C
    siempre funciona para detener un proceso fuera de control.

Solución 5:

autossh observa su conexión y si falla, se vuelve a conectar. Es más fiable que los keepalives. Si te conectas a una sesión de pantalla, continuarás desde donde te desconectaste (ver rscreen que viene con autossh)


Linux
  1. ¿Cómo terminar la conexión SSH que no responde en Linux?

  2. Ssh:¿cómo hacer que un proceso que comienzo durante una sesión de Ssh se ejecute después de que la sesión haya finalizado?

  3. ¿Cómo asignar nombre a una pantalla?

  4. ¿Cómo detener un proceso de pantalla en Linux?

  5. ¿Cómo fuerzo la separación de Screen de otra sesión SSH?

Cómo verificar si está en sesión de pantalla o no en Linux

Cómo iniciar automáticamente la sesión de pantalla en Linux al iniciar sesión

Cómo instalar Mosh Shell como alternativa SSH en Linux

Cómo cerrar la sesión de un usuario fuera de SSH en Linux

Cómo instalar y usar el comando de pantalla Ubuntu 20.04

Cómo instalar Mosh Shell como alternativa SSH en el escritorio de Linux