212.3 - SSH: Comandos clave

Gestión de claves

ComandoDescripción
ssh-keygen -t ed25519Generar par de claves Ed25519
ssh-keygen -t rsa -b 4096Generar par de claves RSA de 4096 bits
ssh-keygen -p -f ~/.ssh/id_ed25519Cambiar passphrase de una clave
ssh-keygen -l -f clave.pubVer huella digital de una clave
ssh-keygen -R hostnameEliminar entrada de known_hosts
ssh-keygen -F hostnameBuscar host en known_hosts
ssh-keygen -H -f ~/.ssh/known_hostsHashear entradas de known_hosts
ssh-copy-id usuario@servidorCopiar clave pública al servidor
ssh-copy-id -i ~/.ssh/id_rsa.pub usuario@servidorCopiar clave específica

Agente SSH

ComandoDescripción
eval $(ssh-agent)Iniciar agente SSH
ssh-addAñadir clave por defecto al agente
ssh-add ~/.ssh/id_ed25519Añadir clave específica al agente
ssh-add -lListar claves cargadas en el agente
ssh-add -DEliminar todas las claves del agente
ssh-add -t 3600 ~/.ssh/id_ed25519Añadir clave con tiempo de vida

Conexión y túneles

ComandoDescripción
ssh usuario@servidorConexión básica
ssh -p 2222 usuario@servidorConexión a puerto personalizado
ssh -i ~/.ssh/id_web usuario@servidorUsar clave específica
ssh -L 8080:localhost:80 usuario@servidorTúnel local (local forwarding)
ssh -R 8080:localhost:80 usuario@servidorTúnel remoto (remote forwarding)
ssh -D 1080 usuario@servidorProxy SOCKS dinámico
ssh -J bastion usuario@internoSaltar a través de bastion host (ProxyJump)
ssh -N -f -L 3306:localhost:3306 usuario@servidorTúnel en segundo plano sin shell
ssh -X usuario@servidorConexión con reenvío X11
ssh -A usuario@servidorConexión con reenvío de agente

Transferencia de archivos

ComandoDescripción
scp archivo usuario@servidor:/ruta/Copiar archivo al servidor
scp usuario@servidor:/ruta/archivo .Copiar archivo del servidor
scp -r directorio/ usuario@servidor:/ruta/Copiar directorio recursivamente
scp -P 2222 archivo usuario@servidor:/ruta/Copiar usando puerto específico
sftp usuario@servidorIniciar sesión SFTP interactiva

Directivas principales de sshd_config

DirectivaDescripción
Port 22Puerto de escucha
PermitRootLogin noBloquear acceso root
PasswordAuthentication noDeshabilitar autenticación por contraseña
PubkeyAuthentication yesHabilitar autenticación por clave pública
AllowUsers user1 user2Limitar acceso a usuarios específicos
AllowGroups grupo1Limitar acceso a grupos específicos
X11Forwarding yesHabilitar reenvío de X11
MaxAuthTries 3Máximo de intentos de autenticación
UsePAM yesUsar módulos PAM
Banner /etc/ssh/banner.txtMostrar banner antes del login
ClientAliveInterval 300Intervalo de keepalive (segundos)
Match User/Group/AddressBloque de configuración condicional
ChrootDirectory /home/%uDirectorio chroot (en bloque Match)
ForceCommand internal-sftpForzar solo SFTP (en bloque Match)

Archivos de configuración y claves

ArchivoDescripción
/etc/ssh/sshd_configConfiguración del servidor SSH
/etc/ssh/ssh_configConfiguración global del cliente SSH
~/.ssh/configConfiguración del cliente por usuario
~/.ssh/authorized_keysClaves públicas autorizadas
~/.ssh/known_hostsHuellas de servidores conocidos
~/.ssh/id_ed25519 / ~/.ssh/id_rsaClaves privadas del usuario
~/.ssh/id_ed25519.pub / ~/.ssh/id_rsa.pubClaves públicas del usuario
/etc/ssh/ssh_host_*_keyClaves del host del servidor