Aprende a evitar que las conexiones SSH se cuelguen en la terminal de MacOS.

Cómo mantener activas las conexiones SSH en la terminal MacOS

Como usuario habitual de Windows, tiendo a tener problemas con cosas bastante básicas en MacOS, ya que no estoy acostumbrado a trabajar con él a diario. En un viaje que realicé recientemente, tuve que trabajar con mi Macbook Pro ya que esta fue la laptop que elegí para este viaje. Durante este viaje tuve que conectarme a un servidor a través de SSH y ejecutar algunos scripts. Uso Putty en Windows para conectarme a mis servidores, sin embargo, en este caso, decidí usar la utilidad cli integrada de OpenSSH en la terminal MacOS. Me di cuenta después de algunas conexiones que si no escribía nada durante unos 5 minutos, la conexión simplemente se cerraba y necesitaba conectarme de nuevo.

Como siempre hago esto de abrir una conexión SSH, me quedo desconectado por un tiempo y luego lo vuelvo a usar, tuve que investigar cómo configurarlo para que funcione correctamente y compartiré con ustedes cómo mantener abiertas sus conexiones SSH en MacOS Monterey.

1. Modifique su archivo de configuración de cliente OpenSSH SSH

Lo primero que debe hacer es ubicar el archivo de configuración SSH  del sistema. En MacOS se encuentra en /etc/ssh/ssh_config. Puede modificarlo usando el siguiente comando ( para obtener más información sobre este archivo de configuración, lea la página de manual aquí ):

sudo nano /etc/ssh/ssh_config

Alternativamente, si no desea realizar las modificaciones a nivel de todo el sistema sino al nivel de usuario actual, modifique en su lugar ~/.ssh/config file:

sudo nano ~/.ssh/config

En cualquiera de estos archivos, deberá realizar la modificación del siguiente paso para mantener las conexiones vivas.

2. Mantener vivas las conexiones SSH

Ahora todo lo que necesita hacer es agregar el ServerAliveIntervalparámetro a su configuración. Este ajuste se puede realizar para todas las conexiones SSH o para un host específico. Desplácese hacia abajo hasta el final del archivo y agregue el parámetro con un valor numérico que corresponda al intervalo en segundos en el que el cliente enviará un encabezado de mantenimiento y evitará que la conexión se caiga. Si desea hacer esto globalmente (a cualquier host que pueda conectar, se enviará el encabezado de mantenimiento), configúrelo de esta manera:

Host *
    ServerAliveInterval 30

Con esta configuración, el encabezado se enviará cada 30 segundos y debería mantener viva la conexión. En caso de que este valor no sea suficiente y sus conexiones sigan cayendo, reduzca este valor a sus necesidades (por ejemplo, a 10 segundos).

Si necesita mantener viva la conexión solo en ciertos hosts, también puede especificar la configuración de esta manera:

Host mywebsite.com
    ServerAliveInterval 30

Su archivo de configuración debería tener este aspecto después de realizar la modificación:

MacOS ssh configuration file

Guarde los cambios en el archivo de configuración y vuelva a conectarse a sus servidores, la conexión ahora debería estar siempre activa siempre que el proceso de la terminal esté abierto (siéntase libre de ver un video de YouTube y regresar a su lugar de trabajo sin perder la conexión a su servidor 😳) .

Que te diviertas ❤️!


Interesado en la programación desde los 14 años, Carlos es un programador autodidacta, fundador y autor de la mayoría de los artículos de Our Code World.

Conviertete en un programador más sociable

Patrocinadores