Cheatsheet SSH / SCP
Acesso remoto seguro e transferência de ficheiros
SSH / SCP
24
tarjetas encontradas
Categorías:
Versiones:
Conexão
Conectar a servidor
ssh user@servidor.com
ssh -p 2222 user@servidor.com
ssh user@192.168.1.100
Conexión básica.
Comandos remotos
ssh user@host "ls -la"
ssh user@host "df -h && free -m"
ssh user@host "sudo systemctl restart nginx"
Ejecutar sin sesión interactiva.
Opciones útiles
ssh -v user@host # verbose/debug
ssh -o ConnectTimeout=5 user@host
ssh -o StrictHostKeyChecking=no user@host
ssh -t user@host "htop" # forzar TTY
Flags de conexión.
Sesión persistente
ssh -o ServerAliveInterval=60 \
-o ServerAliveCountMax=3 user@host
# Mantener conexión activa
Evitar timeout.
Chaves SSH
Generar clave
ssh-keygen -t ed25519 -C "email@example.com"
ssh-keygen -t rsa -b 4096
# Archivos generados:
# ~/.ssh/id_ed25519 (privada)
# ~/.ssh/id_ed25519.pub (pública)
Crear par de claves.
Copiar clave al servidor
ssh-copy-id user@servidor.com
ssh-copy-id -p 2222 user@host
# Manual:
cat ~/.ssh/id_ed25519.pub | \
ssh user@host "cat >> ~/.ssh/authorized_keys"
Configurar auth por clave.
Gestionar claves
ssh-keygen -l -f ~/.ssh/id_ed25519.pub
ssh-keygen -p -f ~/.ssh/id_ed25519
ssh-keygen -R servidor.com
# Ver fingerprint / cambiar passphrase
# Eliminar de known_hosts
Mantenimiento de claves.
Usar clave específica
ssh -i ~/.ssh/mi_clave user@host
# En ~/.ssh/config:
Host mi-server
IdentityFile ~/.ssh/mi_clave
Especificar identidad.
Configuração
~/.ssh/config
Host prod
HostName 192.168.1.50
User deploy
Port 2222
IdentityFile ~/.ssh/prod_key
Host *
ServerAliveInterval 60
Configurar aliases.
Usar alias
# Después de configurar:
ssh prod
scp archivo.txt prod:/var/www/
# En vez de:
# ssh -p 2222 -i ~/.ssh/prod_key deploy@192.168.1.50
Simplificar conexiones.
Múltiples hosts
Host dev staging prod
User deploy
IdentityFile ~/.ssh/work_key
Host dev
HostName dev.empresa.com
Host prod
HostName prod.empresa.com
Compartir configuraciones.
ProxyJump (bastion)
Host interno
HostName 10.0.0.5
User admin
ProxyJump bastion
Host bastion
HostName bastion.empresa.com
User ubuntu
Saltar por servidor intermedio.
SCP / SFTP
Copiar al servidor
scp archivo.txt user@host:/home/user/
scp -r carpeta/ user@host:/backup/
scp -P 2222 archivo user@host:/tmp/
Subida de archivos.
Copiar del servidor
scp user@host:/var/log/app.log ./
scp -r user@host:/etc/nginx/ ./nginx-backup/
scp user@host:"/path/file*" ./local/
Descarga de archivos.
Entre servidores
scp user1@host1:/archivo user2@host2:/dest/
# Con compresión:
scp -C archivo_grande.zip user@host:/tmp/
Copia remota-remota.
SFTP interactivo
sftp user@host
ls # listar
cd /var/www # cambiar dir
put local.txt /remote/
get /remote/file.txt ./
bye
Transferencia interactiva.
Túneis e Port Forward
Local port forward
ssh -L 8080:localhost:80 user@host
# Acceder en localhost:8080
# → reenvía a host:80
ssh -L 3307:db-interna:3306 user@host
Acceder a servicios remotos localmente.
Remote port forward
ssh -R 9090:localhost:3000 user@host
# En el servidor remoto, puerto 9090
# → reenvía a tu máquina:3000
# Útil para exponer dev server
Exponer servicio local al remoto.
Dynamic (SOCKS proxy)
ssh -D 1080 user@host
# Configurar navegador como SOCKS5
# en localhost:1080
# Todo el tráfico pasa por el servidor
Proxy SOCKS vía SSH.
Túnel en background
ssh -fNL 5433:db:5432 user@host
# -f = background
# -N = sin comando remoto
# -L = local forward
Túnel sin sesión interactiva.
Avançado
SSH Agent
eval $(ssh-agent)
ssh-add ~/.ssh/id_ed25519
ssh-add -l # listar claves
ssh-add -D # eliminar todas
# Evita escribir la passphrase siempre
Gestionar claves en memoria.
Multiplexación
# ~/.ssh/config:
Host *
ControlMaster auto
ControlPath ~/.ssh/sockets/%r@%h-%p
ControlPersist 600
mkdir -p ~/.ssh/sockets
Reutilizar conexiones (más rápido).
Desactivar password auth
# /etc/ssh/sshd_config:
PasswordAuthentication no
PermitRootLogin no
PubkeyAuthentication yes
sudo systemctl restart sshd
Endurecer seguridad del servidor.
Rsync sobre SSH
rsync -avz -e "ssh -p 2222" \
./proyecto/ user@host:/var/www/app/
rsync -avz --delete \
user@host:/backup/ ./backup-local/
Sincronización eficiente.