Terminal
Actualizado el 6 de noviembre de 2026
SSH y SCP
Claves ed25519, alias en ~/.ssh/config, agente, túneles, saltos por bastión, copia de archivos con scp y rsync, y depuración.
- #ssh
- #scp
- #rsync
- #tuneles
- #seguridad
Claves
| Acción | Comando |
|---|---|
| Generar una clave ed25519 (pide passphrase) | |
| Generar una clave con nombre propio | |
| Ver la clave pública para copiarla | |
| Ver la huella (fingerprint) de una clave | |
| Cambiar la passphrase de una clave |
Copiar la clave y conectar
| Acción | Comando |
|---|---|
| Instalar tu clave pública en el servidor | |
| Instalar una clave concreta | |
| Conectar | |
| Conectar a otro puerto | |
| Conectar con una clave concreta | |
| Ejecutar un comando remoto y volver | |
| Ejecutar un programa interactivo remoto |
Alias en ~/.ssh/config
Con este archivo basta con escribir ssh prod en lugar de usuario, host, puerto y clave.
bash
Host prod
HostName 203.0.113.10
User deploy
Port 2222
IdentityFile ~/.ssh/id_ed25519_work
IdentitiesOnly yes
Host *
AddKeysToAgent yes
ServerAliveInterval 60| Acción | Comando |
|---|---|
| Conectar usando el alias | |
| Ver la configuración efectiva de un alias |
Agente SSH
El agente guarda tus claves desbloqueadas para no escribir la passphrase en cada conexión.
| Acción | Comando |
|---|---|
| Iniciar el agente en la sesión actual | |
| Añadir una clave al agente | |
| Añadir una clave que caduca en 1 hora | |
| Listar las claves cargadas | |
| Quitar todas las claves del agente |
Túneles
| Acción | Comando |
|---|---|
Abrir en localhost:8080 un puerto web del servidor | |
| Llegar a una base de datos interna a través del servidor | |
| Exponer tu puerto local 3000 en el servidor | |
Proxy SOCKS en localhost:1080 | |
| Túnel en segundo plano |
| Flag | Significado |
|---|---|
-L local:destino:puerto | Reenvío local: tu puerto lleva al destino visto desde el servidor |
-R remoto:destino:puerto | Reenvío remoto: un puerto del servidor lleva a tu equipo |
-D puerto | Proxy SOCKS dinámico |
-N | No abre shell, solo mantiene el túnel |
-f | Pasa a segundo plano tras autenticar |
Saltos por bastión
| Acción | Comando |
|---|---|
| Conectar a un host interno pasando por un bastión | |
| Encadenar varios saltos |
O déjalo fijo en ~/.ssh/config:
bash
Host bastion
HostName bastion.example.com
User ec2-user
Host app-internal
HostName 10.0.1.20
User deploy
ProxyJump bastionCopiar archivos (scp y rsync)
| Acción | Comando |
|---|---|
| Subir un archivo | |
| Descargar un archivo | |
| Copiar una carpeta completa | |
Usar otro puerto (ojo: -P mayúscula) | |
| Sincronizar con compresión y progreso | |
| Simular sin copiar nada | |
| Espejo exacto (borra en destino lo que sobra) | |
| rsync por un puerto distinto |
En rsync, dist/ copia el contenido de la carpeta y dist copia la carpeta misma.
Permisos correctos de ~/.ssh
SSH ignora claves y archivos con permisos demasiado abiertos.
| Acción | Comando |
|---|---|
| Carpeta solo para ti | |
| Clave privada | |
| Clave pública | |
| Configuración y claves autorizadas |
known_hosts
| Acción | Comando |
|---|---|
| Borrar la huella vieja de un host reinstalado | |
| Buscar si un host ya está registrado | |
| Registrar la clave del host antes de conectar | |
| Aceptar hosts nuevos pero rechazar cambios |
Si aparece REMOTE HOST IDENTIFICATION HAS CHANGED, confirma con el administrador antes de borrar la huella: puede ser un ataque.
Depuración
| Acción | Comando |
|---|---|
| Ver qué claves y pasos intenta SSH | |
| Máximo detalle | |
| Probar tu clave con GitHub | |
| Validar la configuración del servidor (en el servidor) | |
| Ver los logs del servidor SSH (Debian y Ubuntu) | |
| Ver los logs del servidor SSH (Fedora y RHEL) |