Cómo usar SSH para acceder a tu servidor de forma segura
¿Qué es SSH y por qué es la forma más segura de administrar tu servidor?
SSH (Secure Shell) es un protocolo de red que te permite conectarte a tu servidor de forma remota y segura, como si estuvieras sentado frente a él. A diferencia de otros métodos como Telnet o FTP, SSH cifra toda la comunicación entre tu ordenador y el servidor, lo que significa que nadie puede espiar tus datos, contraseñas o comandos mientras viajan por Internet.
Para cualquier persona que gestione un servidor, ya sea para alojar una web, una aplicación o simplemente para administrar archivos, SSH es una herramienta imprescindible. Esta guía te enseñará desde cero cómo configurarlo, conectarte y, lo más importante, cómo hacerlo de forma segura.
¿Cómo funciona SSH? La explicación fácil
Imagina que SSH es un túnel privado y blindado entre tu casa y tu servidor. Todo lo que envías por ese túnel viaja en una caja cerrada con candado. Solo tú y el servidor tienen la llave para abrir esa caja.
El protocolo utiliza un sistema de claves públicas y privadas para autenticarte. Cuando te conectas, el servidor te pide pruebas de que tienes la llave correcta. Si la tienes, te deja entrar. Este sistema es mucho más seguro que usar solo una contraseña, porque la clave privada nunca viaja por la red.
Primeros pasos: requisitos antes de empezar
Antes de lanzarte a usar SSH, asegúrate de tener esto:
- Un servidor con SSH habilitado: La mayoría de los servidores Linux ya lo tienen activado por defecto. Si usas un panel como Syspanel (que se accede por el puerto 2106), puedes activarlo desde su interfaz gráfica.
- Un cliente SSH: En Windows puedes usar PowerShell, CMD o programas como PuTTY. En macOS y Linux, la terminal ya tiene SSH integrado.
- Los datos de acceso: Necesitarás la IP de tu servidor, el puerto (por defecto es el 22) y un usuario con permisos para conectarse.
Cómo conectarte a tu servidor por SSH por primera vez
1. Conexión básica con usuario y contraseña
Para una conexión rápida, abre tu terminal o consola y escribe:
ssh usuario@ip-de-tu-servidor
Por ejemplo:
ssh admin@192.168.1.10
Si el servidor usa un puerto distinto al 22, añade la opción -p:
ssh -p 2222 admin@192.168.1.10
La primera vez que te conectes, verás un mensaje preguntándote si confías en el servidor. Escribe yes y pulsa Enter. Después te pedirá la contraseña del usuario. Al escribirla, no verás ningún carácter (ni asteriscos), es normal.
[INFO] Si tu servidor usa Syspanel, el acceso SSH no está relacionado con el puerto 2106. Ese puerto es solo para el panel de administración gráfica. El SSH seguirá usando el puerto 22 a menos que lo cambies manualmente.
2. Cambiar la contraseña de tu usuario
Si has accedido con una contraseña temporal o débil, cámbiala inmediatamente. Dentro de la sesión SSH, escribe:
passwd
Te pedirá la contraseña actual y luego la nueva. Elige una contraseña larga y compleja, con mayúsculas, minúsculas, números y símbolos.
La parte más importante: Configurar claves SSH para máxima seguridad
Usar contraseñas es cómodo, pero no es lo más seguro. Las contraseñas pueden adivinarse con ataques de fuerza bruta. La solución es usar claves SSH, que son prácticamente imposibles de romper.
¿Qué son las claves SSH?
Son un par de archivos generados matemáticamente que funcionan juntos:
- Clave privada: Se queda en tu ordenador. Nunca debe compartirse.
- Clave pública: Se copia en el servidor. Es como una cerradura que solo tu llave privada puede abrir.
Paso 1: Generar tus claves SSH
En tu ordenador local (no en el servidor), abre la terminal y ejecuta:
ssh-keygen -t ed25519 -C "tu-email@ejemplo.com"
[TIP] Si tu sistema es antiguo y no soporta el algoritmo Ed25519, usa:
ssh-keygen -t rsa -b 4096
El comando te preguntará dónde guardar la clave. Pulsa Enter para usar la ubicación por defecto (~/.ssh/id_ed25519). Después te pedirá una contraseña para proteger la clave privada. No la dejes vacía, pon una contraseña larga. Esta contraseña protege tu clave si alguien roba tu ordenador.
Paso 2: Copiar la clave pública al servidor
Ahora tienes dos archivos: id_ed25519 (privada) y id_ed25519.pub (pública). Debes copiar la pública al servidor. La forma más fácil es con:
ssh-copy-id usuario@ip-de-tu-servidor
Te pedirá tu contraseña del servidor una última vez. Después de esto, la clave pública estará instalada.
Si no tienes ssh-copy-id, puedes hacerlo manualmente:
cat ~/.ssh/id_ed25519.pub | ssh usuario@ip-de-tu-servidor "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"
Paso 3: Probar la conexión con tu clave
Desconéctate y vuelve a conectarte:
ssh usuario@ip-de-tu-servidor
Si todo ha ido bien, no te pedirá la contraseña del servidor, sino la contraseña que pusiste a tu clave privada. Eso significa que estás usando la autenticación por claves.
Medidas de seguridad avanzadas para tu servidor SSH
Ahora que ya te conectas con claves, es hora de blindar tu servidor. Estos pasos son críticos para evitar accesos no autorizados.
1. Deshabilitar el acceso por contraseña
Una vez que hayas confirmado que las claves funcionan, desactiva el acceso por contraseña. Edita el archivo de configuración:
sudo nano /etc/ssh/sshd_config
Busca la línea PasswordAuthentication y cámbiala a:
PasswordAuthentication no
Guarda el archivo (Ctrl+O, Enter, Ctrl+X) y reinicia el servicio SSH:
sudo systemctl restart sshd
[WARNING] No hagas este paso hasta estar 100% seguro de que tus claves funcionan. Si te equivocas, podrías quedarte fuera de tu propio servidor. Mantén una segunda sesión SSH abierta mientras pruebas.
2. Cambiar el puerto SSH por defecto
El puerto 22 es el más atacado por bots. Cambiarlo reduce drásticamente los intentos de acceso no autorizado. En el mismo archivo de configuración, busca #Port 22 y cámbialo:
Port 2222
Elige un número entre 1024 y 65535. Recuerda que a partir de ahora tendrás que especificar el puerto en cada conexión:
ssh -p 2222 usuario@ip-de-tu-servidor
[TIP] Si usas Syspanel en el puerto 2106, no confundas ambos puertos. El SSH puede usar cualquier otro puerto que elijas.
3. Desactivar el acceso para el usuario root
Conectarse directamente como root es muy peligroso. Es mejor usar un usuario normal y luego elevar privilegios con sudo. En el archivo de configuración, busca y cambia:
PermitRootLogin no
4. Limitar los usuarios que pueden conectarse
Puedes especificar qué usuarios tienen permitido acceder por SSH. Añade al final del archivo:
AllowUsers usuario1 usuario2
Sustituye usuario1 y usuario2 por los nombres de los usuarios que quieras que accedan.
5. Configurar un límite de intentos de conexión
Para evitar ataques de fuerza bruta, limita los intentos de contraseña fallidos. Añade o modifica:
MaxAuthTries 3
Después de 3 intentos fallidos, la conexión se cerrará automáticamente.
6. Activar un temporizador de desconexión
Si te olvidas de cerrar la sesión, es bueno que el servidor te desconecte automáticamente. Añade:
ClientAliveInterval 300
ClientAliveCountMax 0
Esto desconectará la sesión si estás inactivo más de 5 minutos.
Solución de problemas comunes (FAQ)
No puedo conectarme, me da "Connection refused"
Esto suele significar que el servicio SSH no está corriendo o que el puerto está bloqueado. Verifica que el servicio está activo:
sudo systemctl status sshd
Si no está activo, arráncalo:
sudo systemctl start sshd
También comprueba que el firewall permite el puerto SSH. Si usas UFW:
sudo ufw allow 22/tcp
Olvidé mi contraseña de usuario
Si tienes acceso físico al servidor o al panel Syspanel (puerto 2106), puedes restablecer la contraseña desde la interfaz gráfica. Si no, necesitarás arrancar el servidor en modo de recuperación.
La clave pública no funciona
Revisa que los permisos de los archivos son correctos. En el servidor, la carpeta .ssh debe tener permisos 700 y el archivo authorized_keys debe tener 600:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
¿Cómo sé si alguien está intentando entrar?
Revisa los logs del sistema:
sudo tail -f /var/log/auth.log
Verás todos los intentos de conexión, tanto exitosos como fallidos.
Resumen: Tu checklist de seguridad SSH
Para terminar, aquí tienes una lista de verificación rápida:
- Genera claves SSH (Ed25519 o RSA 4096) y copia la pública al servidor.
- Desactiva el acceso por contraseña en
/etc/ssh/sshd_config. - Cambia el puerto SSH a uno no estándar.
- Desactiva el login de root.
- Limita los usuarios que pueden acceder por SSH.
- Configura límites de intentos y desconexión automática.
- Mantén tu sistema actualizado con
sudo apt update && sudo apt upgrade. - Revisa los logs periódicamente para detectar actividad sospechosa.
Siguiendo esta guía, tu servidor estará protegido contra la gran mayoría de ataques automatizados y accesos no autorizados. SSH es una herramienta muy potente, pero como todo poder, conlleva una gran responsabilidad. Úsala con cabeza y mantén siempre tus claves privadas a salvo.
[INFO] Si en algún momento necesitas ayuda visual con la gestión de tu servidor, recuerda que Syspanel te ofrece una interfaz web accesible en el puerto 2106 donde puedes administrar usuarios, dominios y servicios sin necesidad de usar la terminal para todo.
