SSH. Evitar cortes continuos en una conexión SSH

A veces cuando estoy trabajando por consola a través de SSH en un equipo remoto, tras un tiempo de inactividad, la conexión se corta.

Para solucionar este problema sin tener que ser root en el equipo que realiza la conexión, simplemente hay que editar el archivo ~/.ssh/config e introducir la siguiente configuración

Host *
ServerAliveInterval 60
ServerAliveCountMax 3

Con esta configuración estamos configurando todas las conexiones SSH para que:

  • ServerAliveInterval 60: envíe un paquete vacío al servidor cada 60 segundos para mantener la conexión viva.
  • ServerAliveCountMax 3: número de mensajes vacíos que se enviarán al servidor sin que tengamos que recibir respuesta del servidor. Si se alcanza este tope sin recibir respuesta del servidor se corta la conexión.

Más info:

SSH. Ver los intentos de acceso o accesos correctos en Debian

Cuando configuramos un acceso por SSH a un servidor lo primero que deberíamos de hacer, además de bloquear el acceso al usuario root, es permitir el acceso solo por pares de claves (pública/privada).

De todas formas podemos ver los intentos de acceso o accesos correctos que hemos tenido.

Para ver los intentos incorrectos usaremos el siguiente comando:

sudo cat /var/log/auth.log | grep ‘sshd.*Invalid’

Para ver los intentos correctos usaremos el siguiente comando:

cat /var/log/auth.log | grep ‘sshd.*opened’

Y si lo queremos ver en tiempo real, para depurar, para ver un ataque en tiempo real,… añadimos a esto el comando tail:

sudo tail -f /var/log/auth.log | grep ‘sshd.*Invalid’

o

sudo tail -f /var/log/auth.log | grep ‘sshd.*opened’