Comandos LinuxExplicados en español
/
Ficha69 / 104
Categoría
Redes
Ejemplos
6
Ver también
scp · ping · curl

ssh

Secure Shell (intérprete de comandos seguro)

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.

Sintaxisssh [opciones] usuario@host [COMANDO]
§ 1

Despiece

6 ejemplos
Entrar a un servidor con contraseña

Entrar a un servidor con contraseña

2 piezas
Lámina01 / 06
Comandossh usuario@192.168.1.100
Piezas2
Escala1:1
N.ºPiezaTipoQué hace
1sshComandoEl comando para abrir la sesión segura.
2usuario@192.168.1.100Argumentousuario es tu cuenta en el equipo remoto y 192.168.1.100 su IP.
Resultado

Pide la contraseña del usuario y te abre una terminal dentro del equipo remoto.

Conectar a un puerto que no es el 22

4 piezas
Lámina02 / 06
Comandossh -p 2222 usuario@192.168.1.100
Piezas4
Escala1:1
N.ºPiezaTipoQué hace
1sshComandoEl comando para abrir la sesión segura.
2-pOpciónIndica el puerto en el que escucha el servidor.
32222ValorEl puerto que usa el servidor en vez del 22 por defecto.
4usuario@192.168.1.100Argumentousuario es tu cuenta y 192.168.1.100 es el equipo remoto.
Resultado

Conecta al SSH del servidor aunque esté escuchando en el puerto 2222.

Entrar con una clave en vez de contraseña

4 piezas
Lámina03 / 06
Comandossh -i ~/.ssh/clave_ed25519 usuario@192.168.1.100
Piezas4
Escala1:1
N.ºPiezaTipoQué hace
1sshComandoEl comando para abrir la sesión segura.
2-iOpciónElige el archivo de clave privada que va a usar.
3~/.ssh/clave_ed25519ArgumentoLa ruta de tu clave privada, no la .pub; el símbolo ~ es tu carpeta personal.
4usuario@192.168.1.100Argumentousuario es tu cuenta y 192.168.1.100 es el equipo remoto.
Resultado

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

3 piezas
Lámina04 / 06
Comandossh usuario@192.168.1.100 uptime
Piezas3
Escala1:1
N.ºPiezaTipoQué hace
1sshComandoEl comando para abrir la sesión segura.
2usuario@192.168.1.100Argumentousuario es tu cuenta y 192.168.1.100 es el equipo remoto.
3uptimeArgumentoEl comando que se ejecuta en el remoto; aquí muestra cuánto lleva encendido.
Resultado

Ejecuta uptime en el servidor, te regresa la salida y cierra la conexión.

Crear un túnel hacia un puerto remoto

5 piezas
Lámina05 / 06
Comandossh -N -L 8080:localhost:80 usuario@192.168.1.100
Piezas5
Escala1:1
N.ºPiezaTipoQué hace
1sshComandoEl comando para abrir la sesión segura.
2-NOpciónNo abre terminal ni ejecuta comandos; solo mantiene el túnel.
3-LOpciónRedirige un puerto de tu equipo hacia un destino remoto.
48080:localhost:80ValorTu puerto 8080 apunta al puerto 80 del servidor: aquí localhost es el propio servidor, no tu equipo.
5usuario@192.168.1.100Argumentousuario es tu cuenta y 192.168.1.100 es el equipo remoto.
Resultado

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

3 piezas
Lámina06 / 06
Comandossh -v usuario@192.168.1.100
Piezas3
Escala1:1
N.ºPiezaTipoQué hace
1sshComandoEl comando para abrir la sesión segura.
2-vOpciónVerbose: imprime cada paso de la negociación.
3usuario@192.168.1.100Argumentousuario es tu cuenta y 192.168.1.100 es el equipo remoto.
Resultado

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.

§ 2

Opciones

Las que sí vas a usar
OpciónQué hace
-p PUERTOPuerto al que conecta. Por defecto SSH usa el 22.
-i ARCHIVOIndica 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:puertoCrea un túnel: lo que llegue a ese puerto de tu equipo viaja por SSH y sale hacia host:puerto, visto desde el servidor.
-NNo ejecuta comandos ni abre terminal; útil para mantener un túnel abierto.
-vMuestra el detalle de la conexión para depurar errores. Con -vvv sale todavía más.
-J hostEntra pasando por un host intermedio, como un servidor bastión.
§ 3

Fallas comunes

FallaRemedio
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.
§ 4

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.
§ 5

Ver también