Categorías
SSH

SSH: Como conectarse a un servidor remoto

Una herramienta esencial para la tarea del administrador de sistemas es SSH. Secure Shell, es un protocolo que se utiliza para acceder de forma segura a sistemas remotos.

Sintaxis básica

La forma más básica del comando es:

ssh equipo_remoto

El equipo_remoto en este ejemplo es la dirección IP o el nombre de dominio al que queremos conectarnos.

Este comando asume que el nombre de usuario en el sistema remoto es el mismo que el del sistema local.

En caso que no sea así, podemos especificarlo:

ssh usuario_remoto@equipo_remoto

Una vez que nos hayamos conectado al servidor, es posible que se nos pida que verifiquemos nuestra identidad proporcionando una contraseña. Más adelante veremos cómo generar claves para utilizarlas en lugar de contraseñas.

Para salir de la sesión ssh y volver a la sesión local de shell, ingresamos:

exit

¿Cómo funciona SSH?

En la sección anterior, ssh es el programa cliente y el servidor ssh (llamado sshd) ya se está ejecutando en el equipo_remoto que especificamos.

¿Cómo configurar SSH?

Cuando cambiamos la configuración de SSH, lo que se está cambiando es la configuración del servidor sshd.

En Debian, el archivo principal de configuración de sshd se encuentra en /etc/ssh/sshd_config.

Siempre es recomendable hacer una copia de seguridad de la versión actual antes de editar un archivo:

# cp /etc/ssh/sshd_config{,.bak}

Lo abrimos con un editor de texto:

# nano /etc/ssh/sshd_config

Es preferible dejar la mayoría de las opciones de este archivo como están. Sin embargo, hay algunas que es conveniente revisar:

Port 22

Esta declaración especifica en qué puerto el servidor sshd escuchará las conexiones. Por omisión, es el 22. Siempre se recomienda personalizarlo. Más adelante mostraremos cómo conectarse al nuevo puerto.

HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key

Las declaraciones de claves de host especifican dónde buscar las claves de host globales. Más adelante abordaremos esto con mayor deteniemiento.

SyslogFacility AUTH
LogLevel INFO

Estos dos elementos indican el nivel de registro que debe realizarse.

En caso de dificultades con SSH, aumentar el nivel de detalle del registro puede ser una buena manera de descubrir cuál es el problema.

LoginGraceTime 120
PermitRootLogin yes
StrictModes yes

Estos parámetros especifican parte de la información de inicio de sesión.

LoginGraceTime especifica cuántos segundos se mantendrá viva la conexión sin que se inicie la sesión con éxito.

Puede ser una buena idea establecer este tiempo un poco más alto que la cantidad de tiempo que toma iniciar la sesión normalmente.

PermitRootLogin define si el usuario root puede iniciar la sesión.

En la mayoría de los casos, esto debería cambiarse a no cuando se ha creado una cuenta de usuario que tiene acceso a privilegios elevados (a través de su o sudo) y puede iniciar sesión a través de ssh.

strictModes es un protector de seguridad que rechazará un intento de inicio de sesión si los archivos de autenticación son legibles por todos.

Esto evita los intentos de inicio de sesión cuando los archivos de configuración no son seguros.

X11Forwarding yes
X11DisplayOffset 10

Estos parámetros configuran una capacidad llamada X11 Forwarding. Esto permite ver la interfaz gráfica de usuario (GUI) de un sistema remoto en el sistema local.

Esta opción debe ser activada en el servidor y solicitada por el cliente SSH durante la conexión con la opción -X.

Después de hacer los cambios, guardar y cerrar el archivo escribiendo CTRL+X e Y, seguido de INTRO.

En caso de cambiar alguna configuración en /etc/ssh/sshd_config, debemos asegurarnos de recargar el servidor sshd para implementar las modificaciones:

sudo systemctl reload ssh

Siempre es recomendable probar a fondo los cambios para tener la certeza de que funcionan de la manera que se espera.

Además, puede ser una buena idea tener varias sesiones activas al momento de hacer los cambios. Esto permitirá revertir la configuración si fuese necesario.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *