Qué es SSH y cómo conectarte de forma segura

Autor: Publicado

En breve: SSH (Secure Shell) es un protocolo, es decir, un conjunto de reglas de comunicación que permite conectarse de forma segura a otro ordenador a través de la red y ejecutar comandos en él. Cifra los datos transmitidos, por lo que sirve para administrar un servidor a distancia, también por internet. Para conectarte necesitas un programa compatible con SSH, la dirección del servidor, una cuenta de usuario y una contraseña o una clave correctamente configurada.

¿Para qué sirve SSH?

SSH se utiliza principalmente para trabajar en un ordenador remoto mediante una terminal, es decir, una interfaz de texto. Tras iniciar sesión, introduces comandos que se ejecutan en el servidor, no en tu portátil. Así puedes consultar registros de errores, actualizar software y cambiar la configuración de los servicios, dentro de los permisos de tu cuenta.

Por ejemplo, si la web de tu servidor VPS, es decir, un servidor privado virtual, deja de funcionar, puedes usar SSH para comprobar si falta espacio en disco, leer los mensajes de error y reiniciar un servicio, siempre que tengas los permisos necesarios. No necesitas acceder al escritorio gráfico del servidor.

SSH también tiene otros usos:

¿Cómo funciona una conexión cifrada SSH?

En un extremo está el cliente SSH, el programa que inicia la conexión. En el otro está el servidor SSH, el servicio que acepta las conexiones. OpenSSH es una implementación popular de ambos componentes. Por defecto, el servicio escucha en el puerto TCP 22; un puerto es un número que identifica un servicio en un dispositivo.

Al establecer la conexión, el cliente y el servidor acuerdan los mecanismos de seguridad y crean un canal cifrado. La clave del host, que identifica al servidor, permite al cliente comprobar con qué máquina se está comunicando. Después, el servidor verifica la identidad del usuario, por ejemplo, mediante una contraseña o una clave de usuario.

El cifrado protege el contenido de los comandos, sus resultados y los datos enviados frente a la escucha durante la transmisión. Sin embargo, no protege contra todas las amenazas: un portátil infectado puede capturar los datos antes de que se cifren, y un servidor comprometido puede revelarlos después de descifrarlos. SSH tampoco oculta el hecho de que los dispositivos se están comunicando.

¿Cómo conectarse a un servidor mediante SSH?

Primero, comprueba en el panel o en la documentación de tu proveedor de alojamiento si tu plan incluye acceso SSH. El alojamiento compartido puede limitar esta función o los comandos disponibles. Confirma la dirección del host, el nombre de usuario, el puerto y el método de inicio de sesión permitido; no debes deducir estos datos a partir de la dirección de la web.

En Linux y macOS, el cliente SSH suele estar disponible en la terminal. En Windows puedes usar el cliente OpenSSH si está instalado, por ejemplo, desde PowerShell. El comando básico es el siguiente:

ssh ana (at) serwer.example

Sustituye ana por el nombre de tu cuenta y servidor.example por la dirección real del servidor o su dirección IP. Si el proveedor indica otro puerto, por ejemplo, el 2222, utiliza:

ssh -p 2222 ana (at) serwer.example

En la primera conexión, el programa suele mostrar la huella de la clave del host, un resumen que permite reconocer la clave del servidor. Compárala con la información obtenida de una fuente de confianza, como el panel del proveedor o el administrador, contactado por un canal independiente. No la aceptes automáticamente solo porque el programa te pida confirmación.

Al iniciar sesión con una contraseña, la terminal normalmente no muestra los caracteres que escribes ni asteriscos; es normal. Una vez dentro, puedes ejecutar whoami para comprobar el nombre del usuario actual y pwd para ver el directorio actual. El comando exit cierra la sesión.

¿Contraseña o clave SSH: cuál elegir?

Iniciar sesión con una contraseña es sencillo, pero un servicio expuesto a internet puede recibir intentos automatizados de adivinar contraseñas. Para la administración habitual, una clave SSH es una buena opción. Aun así, debes proteger el ordenador en el que la guardas.

Una clave SSH consta de dos elementos relacionados: la clave pública se coloca en el servidor y la clave privada permanece en tu dispositivo. Al iniciar sesión, el cliente demuestra que posee la clave privada sin enviarla al servidor. No hay que confundir este par con la clave del host, que identifica al propio servidor.

En OpenSSH puedes generar un par de claves con este comando:

ssh-keygen -t ed25519

Establece una contraseña para proteger la clave privada y no sobrescribas una clave existente sin comprobar para qué se utiliza. El archivo que termina en .pub contiene la clave pública; añádela siguiendo las instrucciones del proveedor. No envíes el archivo de la clave privada al administrador ni al soporte técnico.

¿Cómo evitar errores y perder el acceso?

Una advertencia sobre un cambio en la clave del host puede deberse a una reinstalación del servidor, pero también puede indicar que te estás conectando a otra máquina o que alguien intenta interceptar la comunicación. Primero, confirma la causa con el administrador. Eliminar la clave guardada únicamente para que desaparezca el mensaje equivale a saltarse una comprobación de seguridad importante.

Para el trabajo diario, utiliza una cuenta con permisos limitados en lugar de la cuenta root, que tiene control total sobre el sistema. Mantén actualizado el software SSH y no ejecutes comandos desconocidos sin entender sus efectos. Cambiar el puerto no sustituye una autenticación adecuada.

Si quieres desactivar el inicio de sesión con contraseña, primero comprueba el acceso mediante clave en una segunda sesión, dejando abierta la primera. Antes de cambiar la configuración, averigua también cómo acceder a la consola de recuperación del proveedor; así, un error no te dejará sin acceso al servidor.

Consulta también: ¿Qué es CDN?

Lee también

Descubre cómo PHP-FPM atiende peticiones PHP, en qué se diferencia de un servidor web y cómo ajustar sus procesos al tráfico y los recursos.
Conoce BIND, el software abierto de servidor DNS: sus funciones, cómo gestiona dominios y cuándo conviene instalarlo por tu cuenta.
Descubre qué son el registro REGON de Polonia y su número, en qué se diferencian de NIP y KRS y cómo verificar los datos de una empresa.