ssh
Conecta a un servidor o equipo remoto con una sesión segura y cifrada.
Abre una sesión en otro equipo con el tráfico cifrado de punta a punta. Lo usas para administrar servidores, entrar a una máquina remota o ejecutar comandos sin estar sentado frente a ella.
ssh [opciones] usuario@host [COMANDO]Despiece
6 ejemplosEntrar a un servidor con contraseña
| N.º | Pieza | Tipo | Qué hace |
|---|---|---|---|
| 1 | ssh | Comando | El comando para abrir la sesión segura. |
| 2 | usuario@192.168.1.100 | Argumento | usuario es tu cuenta en el equipo remoto y 192.168.1.100 su IP. |
Pide la contraseña del usuario y te abre una terminal dentro del equipo remoto.
Conectar a un puerto que no es el 22
| N.º | Pieza | Tipo | Qué hace |
|---|---|---|---|
| 1 | ssh | Comando | El comando para abrir la sesión segura. |
| 2 | -p | Opción | Indica el puerto en el que escucha el servidor. |
| 3 | 2222 | Valor | El puerto que usa el servidor en vez del 22 por defecto. |
| 4 | usuario@192.168.1.100 | Argumento | usuario es tu cuenta y 192.168.1.100 es el equipo remoto. |
Conecta al SSH del servidor aunque esté escuchando en el puerto 2222.
Entrar con una clave en vez de contraseña
| N.º | Pieza | Tipo | Qué hace |
|---|---|---|---|
| 1 | ssh | Comando | El comando para abrir la sesión segura. |
| 2 | -i | Opción | Elige el archivo de clave privada que va a usar. |
| 3 | ~/.ssh/clave_ed25519 | Argumento | La ruta de tu clave privada, no la .pub; el símbolo ~ es tu carpeta personal. |
| 4 | usuario@192.168.1.100 | Argumento | usuario es tu cuenta y 192.168.1.100 es el equipo remoto. |
Entra sin la contraseña del servidor si tu clave pública está registrada ahí. Si tu clave tiene frase de acceso, te pide esa frase.
Ejecutar un comando sin abrir terminal
| N.º | Pieza | Tipo | Qué hace |
|---|---|---|---|
| 1 | ssh | Comando | El comando para abrir la sesión segura. |
| 2 | usuario@192.168.1.100 | Argumento | usuario es tu cuenta y 192.168.1.100 es el equipo remoto. |
| 3 | uptime | Argumento | El comando que se ejecuta en el remoto; aquí muestra cuánto lleva encendido. |
Ejecuta uptime en el servidor, te regresa la salida y cierra la conexión.
Crear un túnel hacia un puerto remoto
| N.º | Pieza | Tipo | Qué hace |
|---|---|---|---|
| 1 | ssh | Comando | El comando para abrir la sesión segura. |
| 2 | -N | Opción | No abre terminal ni ejecuta comandos; solo mantiene el túnel. |
| 3 | -L | Opción | Redirige un puerto de tu equipo hacia un destino remoto. |
| 4 | 8080:localhost:80 | Valor | Tu puerto 8080 apunta al puerto 80 del servidor: aquí localhost es el propio servidor, no tu equipo. |
| 5 | usuario@192.168.1.100 | Argumento | usuario es tu cuenta y 192.168.1.100 es el equipo remoto. |
La terminal se queda quieta mientras el túnel está abierto: abres http://localhost:8080 en tu navegador y ves lo que sirve el puerto 80 del servidor. Lo cierras con Ctrl+C.
Ver el detalle de una conexión que falla
| N.º | Pieza | Tipo | Qué hace |
|---|---|---|---|
| 1 | ssh | Comando | El comando para abrir la sesión segura. |
| 2 | -v | Opción | Verbose: imprime cada paso de la negociación. |
| 3 | usuario@192.168.1.100 | Argumento | usuario es tu cuenta y 192.168.1.100 es el equipo remoto. |
Imprime líneas que empiezan con debug1 y muestran cada paso: resolución del nombre, conexión al puerto, claves que prueba y métodos de autenticación. Así ves dónde se rompe.
Opciones
Las que sí vas a usar| Opción | Qué hace |
|---|---|
| -p PUERTO | Puerto al que conecta. Por defecto SSH usa el 22. |
| -i ARCHIVO | Indica qué clave privada usar. Si tu clave tiene el nombre normal (~/.ssh/id_ed25519), ssh la prueba solo y no necesitas -i. |
| -L PUERTO:host:puerto | Crea un túnel: lo que llegue a ese puerto de tu equipo viaja por SSH y sale hacia host:puerto, visto desde el servidor. |
| -N | No ejecuta comandos ni abre terminal; útil para mantener un túnel abierto. |
| -v | Muestra el detalle de la conexión para depurar errores. Con -vvv sale todavía más. |
| -J host | Entra pasando por un host intermedio, como un servidor bastión. |
Fallas comunes
| Falla | Remedio |
|---|---|
| Recibir Connection refused al conectar. | El equipo existe pero no hay nada escuchando en ese puerto. Revisa que tenga instalado openssh-server y que el servicio esté activo con systemctl status ssh en el destino, o que no estés usando el puerto equivocado. |
| Ver WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED y entrar en pánico. | Pasa cuando el servidor cambió sus claves, por ejemplo al reinstalarlo. Si sabes que fue eso, quita el registro viejo con ssh-keygen -R 192.168.1.100 y vuelve a conectar. Si no hubo ningún cambio, no entres: alguien podría estar interceptando la conexión. |
| Recibir UNPROTECTED PRIVATE KEY FILE al usar tu clave. | ssh rechaza claves privadas que otros usuarios pueden leer. Déjala solo para ti con chmod 600 ~/.ssh/id_ed25519. |
| Copiar tu clave privada (id_ed25519) a otro equipo para usarla allá. | La clave privada nunca sale de tu máquina. Al servidor solo va la pública (id_ed25519.pub) dentro de ~/.ssh/authorized_keys. |
Preguntas frecuentes
- ¿Cómo me conecto por SSH a un servidor?
- Usa ssh usuario@ip-del-servidor, por ejemplo ssh usuario@192.168.1.100. Te pide la contraseña y entras a la terminal del equipo remoto.
- ¿Cuál es la diferencia entre ssh y telnet?
- Telnet manda la sesión sin cifrar, incluidas las contraseñas, así que cualquiera en la red puede leerlas. SSH cifra todo el tráfico y es el estándar actual.
- ¿Qué hago si me dice Permission denied en SSH?
- Significa que la autenticación falló: contraseña o usuario mal escritos, una clave que el servidor no tiene registrada o un servidor que no acepta contraseñas. Córrelo con ssh -v para ver qué métodos probó y cuál falló.
- ¿Cómo uso una clave SSH en vez de contraseña?
- Genera un par con ssh-keygen -t ed25519, copia la pública al servidor con ssh-copy-id usuario@servidor y después entra normal con ssh usuario@servidor. Solo necesitas -i si la clave tiene otro nombre o está en otra ruta.
- ¿Qué significa SSH connection timed out?
- Que tus paquetes no reciben ninguna respuesta: el equipo está apagado, la IP está mal o un firewall bloquea el puerto. Si el servicio SSH estuviera apagado con el equipo encendido, verías Connection refused. Prueba con ping para descartar un problema de red.