Skip to content

Ssh

This content is not available in your language yet.

6.3 SSH Profesional: Acceso Seguro y Gestión Remota

Sección titulada «6.3 SSH Profesional: Acceso Seguro y Gestión Remota»

-SSH (Secure Shell)* es el estándar de facto para la administración remota segura en sistemas Linux. Permite a los Sysadmins conectarse, ejecutar comandos, transferir archivos y automatizar tareas en servidores distribuidos de forma cifrada y autenticada.

En entornos de producción, una mala configuración de SSH es una de las principales puertas de entrada para ataques. Por ello, dominar SSH no solo implica saber conectarse, sino securizar, auditar y optimizar su uso en infraestructuras críticas.


Al finalizar este capítulo serás capaz de:

  • Comprender el funcionamiento interno de SSH.
  • Configurar accesos seguros basados en claves.
  • Gestionar conexiones remotas de forma eficiente.
  • Transferir archivos con scp y rsync.
  • Securizar el servicio SSH (sshd).
  • Diagnosticar problemas de conexión.

SSH es un protocolo criptográfico que permite:

  • acceso remoto seguro
  • ejecución de comandos
  • transferencia de datos

Funciona bajo el modelo cliente-servidor:

  • ssh (cliente)
  • sshd (servidor)

Puerto por defecto:

TCP 22

SSH soporta dos métodos principales:

  • Simple pero inseguro.
  • Vulnerable a ataques brute-force.
  • Mucho más seguro.
  • Basado en criptografía.

Archivos clave:

  • ~/.ssh/id_rsa → clave privada
  • ~/.ssh/id_rsa.pub → clave pública

  1. Cliente inicia conexión.
  2. Intercambio de claves.
  3. Verificación del servidor (known_hosts).
  4. Autenticación.
  5. Sesión cifrada.

  • /etc/ssh/sshd_config → configuración del servidor
  • ~/.ssh/authorized_keys → claves permitidas
  • ~/.ssh/known_hosts → servidores conocidos

Quieres securizar el acceso a un servidor:

  • eliminar acceso por contraseña
  • usar claves SSH
  • endurecer configuración

Ventana de terminal
ssh-keygen -t ed25519 -C "admin@empresa"

  • -t ed25519 → algoritmo moderno y seguro.
  • -C → comentario identificativo.

Archivos generados:

~/.ssh/id_ed25519
~/.ssh/id_ed25519.pub

Ventana de terminal
ssh-copy-id usuario@servidor

Alternativa manual:

Ventana de terminal
cat id_ed25519.pub | ssh usuario@servidor "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

Ventana de terminal
ssh usuario@servidor

Parte 4: Configuración del servidor (hardening)

Sección titulada «Parte 4: Configuración del servidor (hardening)»

Editar:

Ventana de terminal
sudo nano /etc/ssh/sshd_config

Configuración recomendada:

PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
Port 22

Ventana de terminal
sudo systemctl restart ssh

Nunca desactives autenticación por contraseña sin haber probado acceso por clave.


Ventana de terminal
scp archivo.txt usuario@servidor:/tmp/

Ventana de terminal
rsync -avz archivo.txt usuario@servidor:/tmp/

Ejemplo: forward local

Ventana de terminal
ssh -L 8080:localhost:80 usuario@servidor

Accedes a:

http://localhost:8080

Editar:

Ventana de terminal
nano ~/.ssh/config

Ejemplo:

Host prod
HostName 192.168.1.10
User admin
IdentityFile ~/.ssh/id_ed25519
Port 22

Uso:

Ventana de terminal
ssh prod

-Causas:*

  • clave no copiada
  • permisos incorrectos

Solución:

Ventana de terminal
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

Ventana de terminal
systemctl status ssh

Servidor SSH no activo.


  • Firewall bloqueando puerto 22.
  • IP incorrecta.

Ejecuta:

Ventana de terminal
ssh -v usuario@servidor

Debug detallado.


Ventana de terminal
ssh-keygen -R 192.168.1.10

PermitRootLogin no

Port 2222

Reduce ruido de ataques automatizados.


AllowUsers [email protected].*

Protege contra brute-force:

Ventana de terminal
apt install fail2ban

Preferir:

ed25519

Ventana de terminal
journalctl -u ssh

Para evitar múltiples autenticaciones:

Ventana de terminal
ssh-agent bash
ssh-add

Opciones en sshd_config:

PermitEmptyPasswords no
MaxAuthTries 3
LoginGraceTime 30

Has aprendido a usar SSH de forma profesional: autenticación con claves, securización del servicio, transferencia de archivos y diagnóstico de problemas. Este conocimiento es crítico para gestionar servidores remotos de forma segura y eficiente.

El siguiente paso es completar el dominio de red con herramientas de diagnóstico profundo:

➡️ 6.4 Diagnóstico de Red, donde aprenderás a identificar problemas complejos de conectividad, latencia y routing en entornos reales.