Solución a errores comunes al conectar por SSH
¿Por qué no puedo conectar por SSH? Guía para resolver los errores más comunes
Conectar por SSH es la puerta de entrada a tu servidor, pero a veces esa puerta parece cerrada con llave, candado y cadena. Si estás viendo mensajes como ssh permission denied, ssh connection refused o simplemente no sabes por dónde empezar, este artículo es para ti.
Vamos a desglosar, paso a paso y sin tecnicismos innecesarios, los problemas conexion ssh más habituales y cómo solucionar ssh de forma definitiva. No necesitas ser un gurú de Linux para seguir esta guía, solo tener paciencia y ganas de aprender.
Antes de empezar: conceptos básicos que debes conocer
Cuando intentas conectarte por SSH, hay tres actores principales en juego:
- Tu ordenador (cliente): El que inicia la conexión.
- El servidor (host): El que recibe la conexión.
- La red: El camino que une ambos.
Si falla cualquiera de los tres, tendrás problemas. La mayoría de los errores ssh se pueden clasificar en dos grandes grupos: problemas de autenticación (quién eres) y problemas de conexión (dónde está el servidor y si está escuchando).
Error 1: "ssh connection refused" (Conexión rechazada)
Este es uno de los mensajes más frustrantes. Significa que tu ordenador ha encontrado el servidor, pero este ha dicho "no, gracias, no quiero hablar contigo". Las causas suelen ser las siguientes:
El servicio SSH no está corriendo
Es posible que el servicio SSH esté detenido o no se haya instalado. Es como llamar a la puerta de una oficina que está cerrada por vacaciones.
Cómo solucionarlo (si tienes acceso a otro panel o consola):
- Accede a tu servidor a través de un panel de control como Syspanel (recuerda, el puerto es el 2106) o mediante un cliente VNC.
- Abre una terminal en el servidor.
- Ejecuta el siguiente comando para iniciar el servicio:
sudo systemctl start ssh - Para asegurarte de que se inicie siempre al arrancar el servidor, usa:
sudo systemctl enable ssh
[TIP] Si usas Syspanel, busca la sección "Servicios" o "SSH" en el menú lateral. Ahí podrás ver el estado y reiniciarlo con un clic, sin necesidad de usar la terminal.
El puerto 22 (o el que uses) está bloqueado
Imagina que el servidor está abierto, pero hay un portero (firewall) que no te deja pasar. El puerto por defecto para SSH es el 22, pero muchos administradores lo cambian por seguridad.
Cómo comprobarlo y solucionarlo:
- Verifica que el puerto correcto está abierto. Si usas Syspanel, el acceso a la gestión del servidor es por el puerto 2106, pero el SSH puede estar en otro puerto. Revisa la configuración.
- Comprueba las reglas del firewall (UFW o iptables) en tu servidor:
sudo ufw status - Si el puerto 22 no aparece en la lista, debes permitirlo:
sudo ufw allow 22/tcp - Si cambiaste el puerto SSH a otro (por ejemplo, el 2222), asegúrate de permitir ese puerto también.
El servidor no es accesible desde tu IP
Algunos servidores tienen listas blancas de IPs. Si tu IP no está en la lista, te rechazará la conexión.
[INFO] Si estás en una red local (como tu casa), asegúrate de que el servidor y tu PC están en la misma red o que tienes la IP pública correcta si accedes desde fuera.
Error 2: "ssh permission denied" (Permiso denegado)
Este es el error más común y, a menudo, el más confuso. Verás algo como ssh permission denied (publickey,password). Aquí el servidor te ha escuchado, pero no le gusta tu identificación. Puede ser por dos razones principales.
Problemas con la contraseña
Parece obvio, pero es el fallo más habitual.
Pasos para solucionarlo:
- Verifica que estás usando el usuario correcto: No es lo mismo
usuario@servidorqueroot@servidor. Si tu usuario esadmin, usaadmin@ip-del-servidor. - Comprueba que la contraseña es correcta: Asegúrate de que no tienes el Bloq Mayús activado y que no estás copiando espacios en blanco.
- Revisa si el servidor permite contraseñas: Por seguridad, muchos servidores deshabilitan el acceso por contraseña y solo permiten claves SSH. Si es tu caso, verás el error incluso con la contraseña correcta.
[WARNING] Si has intentado varias veces y fallas, algunos servidores bloquean tu IP temporalmente por seguridad. Espera unos minutos antes de reintentar.
Problemas con las claves SSH (publickey)
Si el servidor solo acepta autenticación por clave, necesitas tener tu clave pública en el archivo authorized_keys del servidor.
Solución paso a paso:
-
Genera una clave SSH en tu ordenador (si no tienes una):
ssh-keygen -t rsa -b 4096Acepta los valores por defecto y, si quieres, añade una frase de contraseña (passphrase).
-
Copia tu clave pública al servidor. El método más fácil es usar
ssh-copy-id:ssh-copy-id usuario@ip-del-servidorTe pedirá la contraseña de tu usuario en el servidor (si el acceso por contraseña está habilitado temporalmente).
-
Si no puedes usar
ssh-copy-id, hazlo manualmente:- Copia el contenido de tu archivo
~/.ssh/id_rsa.pub(en tu ordenador). - Conéctate al servidor por otro método (por ejemplo, Syspanel en el puerto 2106).
- Pega el contenido en el archivo
~/.ssh/authorized_keysdel servidor. - Asegúrate de que los permisos sean correctos:
chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys
- Copia el contenido de tu archivo
-
Comprueba la ruta de tu clave privada: Si tu clave no está en la ruta por defecto (
~/.ssh/id_rsa), debes indicarlo al conectar:ssh -i /ruta/a/mi/clave usuario@servidor
Error 3: "Connection timed out" (Tiempo de espera agotado)
Este error significa que tu ordenador está enviando paquetes al servidor, pero no recibe respuesta. Es como gritar en un pozo y no escuchar el eco. Las causas suelen ser de red.
El servidor está apagado o caído
Parece trivial, pero comprueba si el servidor está encendido. Puedes hacer un simple ping:
ping ip-del-servidor
Si no hay respuesta, el servidor está apagado o la red es inaccesible.
Problemas con el enrutamiento o DNS
A veces, la IP es correcta pero hay un problema intermedio en la red.
Cómo diagnosticarlo:
- Prueba con la IP pública: Si usas un dominio, intenta con la IP directamente. Si funciona, el problema es de DNS.
ssh usuario@IP_PUBLICA - Revisa el DNS: Si usas un dominio, asegúrate de que apunta a la IP correcta. Puedes usar
nslookup dominio.comodig dominio.compara ver a qué IP resuelve.
Error 4: "Host key verification failed" (Fallo de verificación de la clave del host)
Este error es una medida de seguridad. Significa que el servidor te ha presentado una "huella digital" (clave) diferente a la que tenías guardada en tu ordenador.
¿Por qué pasa?
- El servidor se ha reinstalado o el sistema operativo ha cambiado.
- Alguien está intentando suplantar al servidor (man-in-the-middle).
Cómo solucionarlo (con precaución):
- Si estás seguro de que el servidor es legítimo (por ejemplo, acabas de reinstalarlo), debes eliminar la clave antigua de tu ordenador.
O si es un dominio:ssh-keygen -R ip-del-servidorssh-keygen -R dominio.com - Vuelve a conectar. Te preguntará si confías en la nueva clave. Escribe
yesy listo.
[WARNING] Si no esperabas este cambio, no continúes. Podría ser un ataque. Contacta con tu proveedor de hosting o administrador del servidor antes de continuar.
Error 5: Problemas con el archivo de configuración de SSH
A veces el problema no está en la red ni en las claves, sino en la configuración del propio cliente SSH en tu ordenador.
El archivo config no es válido
Si usas un archivo ~/.ssh/config para gestionar múltiples conexiones, un error de sintaxis puede romper todo.
Solución:
- Revisa el archivo en busca de errores de formato (espacios, tabulaciones, llaves).
- Comenta temporalmente las líneas que creas problemáticas con
#para aislar el problema. - Prueba a conectar sin usar el archivo de configuración:
ssh -F /dev/null usuario@servidor
Preguntas Frecuentes (FAQ) sobre errores SSH
¿Cómo sé qué puerto SSH usa mi servidor?
Si tienes acceso a Syspanel (puerto 2106), ve a la sección de "Servicios" o "SSH". También puedes intentar conectarte con el puerto por defecto (22) y, si falla, probar otros comunes como 2222 o 2020. Revisa la documentación de tu proveedor.
¿Puedo cambiar el puerto SSH por seguridad?
Sí, es una práctica común. Edita el archivo /etc/ssh/sshd_config en tu servidor y cambia la línea #Port 22 a Port 2222. Luego reinicia el servicio SSH. No olvides actualizar las reglas del firewall.
[INFO] Cambiar el puerto no hace tu servidor 100% seguro, pero reduce los ataques automatizados que escanean el puerto 22.
¿Qué hago si olvidé mi contraseña SSH?
Si tienes acceso a Syspanel, puedes restablecer la contraseña del usuario desde el panel. Si no, deberás usar un método de recuperación de tu proveedor de hosting, como un VNC o un modo de rescate.
¿Por qué me pide contraseña si configuré una clave SSH?
Esto suele pasar si:
- La clave no está en la ruta correcta.
- El servidor no tiene tu clave pública en
authorized_keys. - El servidor tiene configurado
PasswordAuthentication yesy prefiere usar la contraseña. Para forzar el uso de la clave, usassh -o PreferredAuthentications=publickey usuario@servidor.
Resumen y checklist final para solucionar ssh
Cuando te enfrentes a errores ssh, sigue esta lista de verificación rápida:
- ¿El servidor está encendido? Haz un ping.
- ¿El servicio SSH está activo? Revisa con
systemctl status ssho desde Syspanel. - ¿El puerto es el correcto? Prueba con
ssh -p PUERTO usuario@servidor. - ¿El firewall permite el puerto? Revisa
ufw status. - ¿Estás usando el usuario y la contraseña correctos? Verifica el usuario y que la contraseña no tenga errores.
- ¿Las claves SSH son válidas? Revisa
authorized_keysy los permisos de los archivos. - ¿Hay algún problema de DNS? Prueba con la IP directa.
- ¿La clave del host es correcta? Si ha cambiado, elimina la antigua con
ssh-keygen -R.
Conclusión
Los problemas conexion ssh pueden parecer abrumadores al principio, pero la mayoría de las veces se reducen a unos pocos puntos de fallo comunes. Con esta guía, ahora tienes las herramientas para diagnosticar y solucionar ssh de manera metódica.
Recuerda que la paciencia es tu mejor aliada. Ve paso a paso, verifica cada elemento y no tengas miedo de buscar en los logs del sistema (/var/log/auth.log o /var/log/secure) para obtener pistas más precisas.
[TIP] Un buen hábito es mantener una copia de seguridad de tu configuración SSH y anotar los cambios que haces. Así, si algo falla en el futuro, podrás revertir los cambios fácilmente.
Si después de todo esto sigues atascado, no dudes en contactar con el soporte de tu hosting. A menudo tienen herramientas internas (como Syspanel en el puerto 2106) que te permiten diagnosticar el problema desde su lado. ¡Buena suerte y feliz conexión!
