Dominá SSH y SCP en Linux: Qué son, sintaxis, opciones y ejemplos prácticos
Introducción
En el día a día de cualquier administrador de sistemas o desarrollador que trabaja con servidores Linux, SSH (Secure Shell) y SCP (Secure Copy) son herramientas esenciales. Ambas se basan en el mismo protocolo de cifrado, pero cumplen roles distintos: SSH permite abrir una sesión interactiva segura en una máquina remota, mientras que SCP sirve para transferir archivos de forma segura entre el host local y el remoto.
A continuación, vamos a desglosar cada comando, explicar su sintaxis, las banderas más usadas y presentar ejemplos reales que podés copiar y pegar en la terminal.
1. SSH – Conexión remota segura
1.1. Qué hace
ssh abre un canal cifrado entre tu computadora y otra máquina que tenga un servidor SSH corriendo (usualmente el daemon sshd). Una vez conectado, podés ejecutar comandos como si estuvieras sentado delante del equipo remoto.
1.2. Sintaxis básica
ssh [opciones] usuario@host
- usuario: nombre de la cuenta en la máquina remota.
- host: dirección IP o nombre de dominio del servidor.
1.3. Opciones/flags más usadas
| Flag | Descripción |
|---|---|
-p puerto |
Especifica el puerto del servidor SSH (por defecto 22). |
-i ruta/clave.pem |
Usa una clave privada distinta a la predeterminada (~/.ssh/id_rsa). |
-L puerto_local:destino:puerto_remoto |
Crea un túnel de reenvío de puerto local (port forwarding). |
-R puerto_remoto:destino:puerto_local |
Reenvío de puerto remoto. |
-N |
No ejecutar comandos remotos; útil solo para túneles. |
-C |
Habilita compresión de datos, útil en conexiones lentas. |
-v, -vv, -vvv |
Muestra niveles de verbosidad para depuración. |
1.4. Ejemplos prácticos
Conexión simple
ssh juan@192.168.1.45
Con puerto no estándar
ssh -p 2222 juan@ejemplo.com
Uso de clave privada personalizada
ssh -i ~/.ssh/mi_clave.pem juan@servidor.com
Reenvío de puerto local (ejemplo: acceder a un servidor MySQL que solo escucha en localhost del remoto)
ssh -L 3307:127.0.0.1:3306 juan@servidor.com
Ahora podés conectar tu cliente MySQL local a
localhost:3307y el tráfico será redirigido al MySQL del servidor remoto.
Túnel solo para reenvío (sin abrir shell)
ssh -N -L 8080:127.0.0.1:80 juan@servidor.com
Depuración de conexión fallida
ssh -vvv juan@servidor.com
2. SCP – Copia segura de archivos
2.1. Qué hace
scp permite copiar archivos y directorios entre el host local y uno remoto (o entre dos remotos) usando el mismo protocolo cifrado que SSH. La sintaxis es similar a la de cp, pero con la posibilidad de especificar rutas remotas.
2.2. Sintaxis básica
scp [opciones] origen destino
- origen y destino pueden ser rutas locales o remotas (
usuario@host:/ruta). - Cuando se trata de directorios, se usa la flag
-rpara copiar recursivamente.
2.3. Opciones/flags más usadas
| Flag | Descripción |
|---|---|
-r |
Copia recursivamente directorios. |
-P puerto |
Define el puerto del servidor SSH (nota: mayúscula P). |
-i ruta/clave.pem |
Usa una clave privada específica. |
-C |
Habilita compresión. |
-p |
Preserva los timestamps y modos de archivo originales. |
-q |
Modo silencioso, suprime el progreso. |
2.4. Ejemplos prácticos
Subir un archivo al servidor
scp -i ~/.ssh/mi_clave.pem archivo.txt juan@servidor.com:/home/juan/
Descargar un directorio completo
scp -r juan@servidor.com:/var/www/html ./html_local
Copia usando puerto no estándar
scp -P 2222 juan@servidor.com:/etc/nginx/nginx.conf ./
Copia entre dos hosts remotos (desde la máquina donde ejecutás el comando)
scp juan@host1:/ruta/archivo.log juan@host2:/ruta/destino/
Necesitás tener acceso SSH a ambos hosts desde la máquina origen.
Preservar permisos y timestamps al sincronizar
scp -p -r ./mi_app juan@servidor.com:/opt/
Uso combinado con compresión y modo silencioso (útil en scripts)
scp -C -q -i ~/.ssh/clave.pem archivo.zip juan@servidor.com:/tmp/
3. Buenas prácticas y trucos avanzados
Configurar
~/.ssh/configpara evitar escribir siempre usuario, host y puerto.Host mi-servidor HostName servidor.com User juan Port 2222 IdentityFile ~/.ssh/mi_clave.pemLuego simplemente ejecutás
ssh mi-servidoroscp archivo.txt mi-servidor:/ruta/.Usar
ssh-agentpara cargar tu clave una sola vez y evitar introducir la contraseña cada vez.eval $(ssh-agent -s) ssh-add ~/.ssh/mi_clave.pemLimitar el número de intentos de autenticación agregando
MaxAuthTries 3en/etc/ssh/sshd_configdel servidor.Desactivar el reenvío de X11 si no lo necesitás, añadiendo
-xasshpara evitar sobrecarga.Comprimir antes de transferir archivos muy grandes con
tary luego usarscp.tar czf proyecto.tar.gz proyecto/ scp proyecto.tar.gz juan@servidor.com:/backups/
4. Conclusión
Dominar SSH y SCP te brinda una herramienta poderosa para gestionar servidores de forma segura y eficiente. Desde abrir una consola remota, pasar puertos, hasta copiar directorios completos con preservación de permisos, estas utilidades cubren la mayor parte de las necesidades diarias. Aprovechá las opciones avanzadas y los archivos de configuración para simplificar tu flujo de trabajo y reducir la fricción al administrar infraestructuras Linux.
¡Ahora ya podés ejecutar estos comandos con confianza y adaptar los ejemplos a tus propios entornos!
DUGLAS MORENO
Comentarios (0)
Sé el primero en comentar.