Linux: Cómo usar SSH por primera vez (claves y conexión)
¿Qué es SSH y por qué lo necesitas?
Si alguna vez has oído hablar de administrar un servidor Linux, seguro que has escuchado las siglas SSH. Pero, ¿qué son exactamente? SSH (Secure Shell) es un protocolo de red que te permite conectarte de forma segura a otro equipo, normalmente un servidor, para ejecutar comandos como si estuvieras sentado delante de él.
La gracia de SSH es que toda la comunicación entre tu ordenador y el servidor viaja cifrada. Esto significa que nadie en el medio (como un hacker en una cafetería con WiFi público) puede espiar lo que escribes, ni tus contraseñas, ni los datos que mueves. Es la herramienta estándar para administrar cualquier servidor Linux, ya sea un VPS, un hosting dedicado o una Raspberry Pi en tu casa.
Para un principiante, el primer contacto con SSH puede parecer un poco abrumador. Pero no te preocupes: en esta guía te voy a explicar paso a paso cómo usar ssh linux por primera vez, cómo crear tus claves ssh para tener una seguridad ssh de nivel profesional y cómo hacer tu primera conexión por ssh con éxito.
Primeros pasos con SSH: Lo que necesitas antes de empezar
Antes de lanzarnos a escribir comandos, asegurémonos de que tienes lo básico. No necesitas ser un experto, pero sí tener claros estos tres elementos:
- Un servidor Linux: Puede ser un VPS (servidor virtual privado), un servidor de hosting que ofrezca acceso root, o incluso un ordenador viejo que hayas convertido en servidor en tu casa. Necesitarás su dirección IP (algo como
192.168.1.10o una IP pública) o un nombre de dominio (comotudominio.com) que apunte a él. - Un cliente SSH: Esto es el programa que usas en tu ordenador local para conectarte al servidor. Si usas Linux o macOS, ya tienes uno integrado en la terminal. Si usas Windows, te recomiendo PowerShell (que ya lo trae integrado) o instalar Windows Terminal. Es decir, no necesitas instalar nada extra en la mayoría de casos.
- Credenciales de acceso: Normalmente, cuando contratas un servidor, te dan un usuario (casi siempre
root) y una contraseña. Si no los tienes, búscalos en el correo de bienvenida de tu proveedor o en el panel de control.
Cómo conectar por SSH por primera vez (con contraseña)
Vamos a lo práctico. La forma más sencilla de hacer tu primera conexión por ssh es usando una contraseña. Es el método más directo, aunque no el más seguro a largo plazo (de eso hablaremos después). Sigue estos pasos:
Paso 1: Abre tu terminal
En tu ordenador local, abre la aplicación de terminal o PowerShell. Verás una ventana con un prompt esperando tus órdenes.
Paso 2: Escribe el comando SSH básico
El comando básico es muy sencillo. La sintaxis es la siguiente:
ssh usuario@direccion_ip_del_servidor
Por ejemplo, si tu usuario es root y la IP de tu servidor es 203.0.113.5, escribirías:
ssh root@203.0.113.5
Si tu servidor usa un puerto diferente al estándar (el 22), tendrás que especificarlo con el parámetro -p. Por ejemplo, si tu proveedor usa el puerto 2222:
ssh root@203.0.113.5 -p 2222
[TIP]: Si no sabes qué usuario usar, prueba con root o admin. En la mayoría de los VPS, root es el usuario administrativo principal.
Paso 3: Acepta la huella del servidor
La primera vez que te conectes, verás un mensaje de advertencia como este:
The authenticity of host '203.0.113.5' can't be established.
ED25519 key fingerprint is SHA256:...
Are you sure you want to continue connecting (yes/no)?
Esto es normal. Tu ordenador te está preguntando si confías en ese servidor. Es como cuando visitas una web con un certificado SSL. Escribe yes y pulsa Enter. Esto guardará la huella digital del servidor en tu lista de conocidos y no te volverá a preguntar.
Paso 4: Introduce la contraseña
Ahora te pedirá la contraseña. Escríbela y pulsa Enter. Notarás que mientras escribes no se ve nada en pantalla (ni puntos ni asteriscos). Esto es una medida de seguridad para que nadie mire por encima de tu hombro cuántos caracteres tiene tu contraseña. No te asustes, escribe con confianza y pulsa Enter.
Paso 5: ¡Ya estás dentro!
Si todo ha ido bien, verás un mensaje de bienvenida y el prompt del servidor cambiará. Ahora estás ejecutando comandos directamente en tu servidor Linux. Puedes probar con whoami para ver qué usuario eres o pwd para ver en qué directorio estás.
[WARNING]: Usar la contraseña del servidor a través de SSH es cómodo, pero es vulnerable a ataques de fuerza bruta. Un bot podría intentar miles de contraseñas por minuto. Por eso, es fundamental que des el siguiente paso: usar claves SSH.
La seguridad SSH de verdad: Cómo crear y usar claves SSH
Usar contraseñas es como dejar la llave de tu casa debajo del felpudo. Las claves ssh son como tener una llave de alta seguridad con un código único e imposible de adivinar. Es el estándar de oro en seguridad ssh y te recomiendo encarecidamente que lo configures.
El sistema de claves SSH se basa en criptografía asimétrica. Esto significa que se generan dos llaves matemáticamente relacionadas:
- La clave privada: Esta es tu llave secreta. Se queda guardada en tu ordenador local y jamás debe compartirse ni enviarse a nadie. Si alguien la obtiene, puede acceder a todos tus servidores.
- La clave pública: Esta llave se puede compartir libremente. Es la que instalaremos en el servidor. Cierra la cerradura que solo tu llave privada puede abrir.
Paso 1: Genera tus claves SSH
En tu terminal local (no en el servidor), escribe el siguiente comando:
ssh-keygen -t ed25519 -C "tu_email@ejemplo.com"
-t ed25519: Especifica el tipo de algoritmo de cifrado.ed25519es moderno, rápido y muy seguro. Es la opción recomendada hoy en día.-C: Es un comentario para identificar la llave. Normalmente se usa tu correo electrónico, pero es opcional.
También puedes usar rsa con -t rsa -b 4096 si tu servidor es antiguo y no soporta ed25519, pero intenta usar ed25519 siempre que puedas.
Paso 2: Elige una frase de contraseña (passphrase)
El comando te preguntará dónde guardar la llave. Lo normal es aceptar la ruta por defecto:
Enter file in which to save the key (/home/tu_usuario/.ssh/id_ed25519):
Pulsa Enter para aceptar. Ahora te pedirá una frase de contraseña (passphrase):
Enter passphrase (empty for no passphrase):
Aquí tienes dos opciones:
- Dejarla vacía: Es más cómodo, pero si alguien roba tu archivo de clave privada, tendrá acceso total.
- Poner una frase: Es como una segunda contraseña para tu llave. Te la pedirá cada vez que la uses. Es más seguro y es la opción recomendada para servidores importantes.
[INFO]: La passphrase no es la contraseña del servidor. Es una capa extra de protección para tu clave privada local. Aunque te la roben, sin la passphrase no podrán usarla.
Paso 3: Copia la clave pública al servidor
Ahora tienes dos archivos en tu carpeta ~/.ssh/: id_ed25519 (tu clave privada) e id_ed25519.pub (tu clave pública). Necesitamos copiar la pública al servidor.
La forma más fácil es usar el comando ssh-copy-id:
ssh-copy-id usuario@direccion_ip_del_servidor
Te pedirá la contraseña del servidor una última vez. Después, copiará tu clave pública al archivo ~/.ssh/authorized_keys del servidor, que es el archivo que lista las llaves autorizadas para entrar.
[TIP]: Si ssh-copy-id no está disponible en tu sistema (por ejemplo, en Windows PowerShell), puedes hacerlo manualmente. Primero, muestra tu clave pública con cat ~/.ssh/id_ed25519.pub, copia el resultado. Luego, conéctate al servidor con tu contraseña y ejecuta:
mkdir -p ~/.ssh
echo "LA_CLAVE_PUBLICA_QUE_COPIASTE" >> ~/.ssh/authorized_keys
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
Paso 4: Conecta usando tu clave SSH
Ahora, cuando te conectes al servidor, ya no te pedirá la contraseña del servidor. Simplemente ejecuta el mismo comando de antes:
ssh usuario@direccion_ip_del_servidor
Si pusiste una passphrase en tu clave, te la pedirá a ti (para desbloquear tu llave local). Si la dejaste vacía, entrarás directamente.
Mejora tu seguridad SSH: Desactiva la autenticación por contraseña
Una vez que hayas verificado que la conexión con claves ssh funciona perfectamente, es hora de dar el paso final para una seguridad ssh óptima: desactivar el acceso por contraseña. Esto bloqueará todos los intentos de fuerza bruta.
Paso 1: Edita el archivo de configuración de SSH
Conecta a tu servidor usando tus claves SSH y abre el archivo de configuración del demonio SSH con un editor de texto. Usaremos nano, que es el más amigable para principiantes:
sudo nano /etc/ssh/sshd_config
Paso 2: Modifica las directivas clave
Dentro del archivo, busca (o añade) las siguientes líneas y cámbialas así:
PasswordAuthentication no
PermitRootLogin prohibit-password
PasswordAuthentication no: Esta es la clave. Le dice al servidor que no acepte contraseñas para iniciar sesión, solo claves SSH.PermitRootLogin prohibit-password: Esto permite que el usuariorootinicie sesión, pero solo con claves SSH, nunca con contraseña. Si quieres ser aún más estricto, puedes ponerPermitRootLogin noy usar un usuario normal con permisos de sudo, pero eso es para más adelante.
Paso 3: Reinicia el servicio SSH
Guarda el archivo (en nano, con Ctrl + O, luego Enter, y Ctrl + X para salir). Ahora reinicia el servicio para aplicar los cambios:
sudo systemctl restart ssh
[WARNING]: Antes de cerrar tu sesión actual, abre una nueva ventana de terminal e intenta conectarte de nuevo. Si la conexión con claves funciona, perfecto. Si algo falla, podrás usar esa segunda sesión para revertir los cambios. Nunca cierres tu única sesión hasta estar seguro de que la nueva conexión funciona.
Solución de problemas comunes al usar SSH
Incluso los más experimentados se encuentran con problemas. Aquí tienes los más comunes y cómo solucionarlos:
"Permission denied (publickey,password)"
Este es el error más frustrante. Significa que el servidor ha rechazado tu intento de acceso. Las causas más comunes son:
- La clave pública no está en el servidor: Revisa que la copiaste bien al archivo
~/.ssh/authorized_keysdel servidor. - Permisos incorrectos: El servidor es muy estricto con los permisos. Asegúrate de que tu carpeta
.sshen el servidor tiene permisos700y el archivoauthorized_keystiene600. En tu ordenador local, la carpeta.sshdebe tener700y la clave privada600. - Estás usando el usuario equivocado: Asegúrate de que la clave pública está en el directorio del usuario con el que intentas conectar.
"Connection timed out"
Esto suele significar que el servidor no está accesible. Puede ser que:
- El servidor esté apagado o reiniciándose.
- El puerto 22 esté bloqueado por un firewall. Si usas un hosting con panel, como Syspanel, recuerda que el acceso a su panel es por el puerto 2106, pero el SSH sigue en el 22. Revisa las reglas del firewall de tu servidor o de tu proveedor.
- Tu IP local esté bloqueada por un fallo de seguridad (como
fail2ban).
"Host key verification failed"
Este error aparece cuando la huella digital del servidor ha cambiado. Esto puede pasar si reinstalaste el sistema operativo del servidor. Para solucionarlo, en tu ordenador local, edita el archivo ~/.ssh/known_hosts y elimina la línea correspondiente a la IP o dominio del servidor. Puedes hacerlo con:
ssh-keygen -R direccion_ip_del_servidor
Preguntas frecuentes (FAQ) sobre SSH
¿Es SSH lo mismo que un panel de control como Syspanel?
No, son cosas distintas. SSH es un protocolo de línea de comandos para administrar el sistema operativo del servidor. Un panel de control como Syspanel es una interfaz gráfica web (a la que accedes por el puerto 2106) que te permite gestionar tu hosting, crear bases de datos, gestionar dominios, etc., sin necesidad de usar comandos. Son complementarios: puedes usar el panel para tareas de gestión y SSH para tareas más avanzadas.
¿Puedo usar SSH en mi teléfono móvil?
Sí, puedes. Existen aplicaciones como Termius o JuiceSSH para Android, y Termius o Blink para iOS. Te permiten conectarte a tu servidor desde cualquier lugar.
¿Cuántas claves SSH puedo tener?
Las que quieras. Lo normal es tener una clave privada por dispositivo (tu portátil, tu PC de casa, tu móvil) y añadir la clave pública de cada dispositivo al servidor. Así, si pierdes un portátil, puedes eliminar su clave pública del servidor sin afectar a las demás.
¿Qué hago si olvidé mi passphrase de la clave SSH?
No hay forma de recuperarla. La clave privada está cifrada con esa passphrase. Si la olvidas, tendrás que generar un nuevo par de claves y volver a copiar la nueva clave pública al servidor. Es un buen recordatorio de por qué es importante guardar bien tus claves.
Conclusión: Tu primer paso hacia el dominio del servidor
Aprender a usar ssh linux es una habilidad fundamental para cualquier persona que quiera administrar sus propios servidores. Hemos cubierto desde la conexión básica con contraseña hasta la configuración de claves ssh para una seguridad ssh robusta y la desactivación del acceso por contraseña.
Recuerda que la práctica hace al maestro. No tengas miedo de experimentar en un servidor de prueba. Cuanto más uses SSH, más natural te resultará. Ya tienes las herramientas y el conocimiento para hacer tu primera conexión por ssh con total confianza. ¡Adelante, tu servidor te espera!
