Cómo configurar SSH seguro a través de Tor
Cómo configurar SSH seguro a través de Tor (.onion) usando llaves públicas

Los servicios ocultos de Tor permiten acceder a un servidor sin exponer directamente su dirección IP pública. Combinados con SSH y autenticación por llaves, ofrecen una capa adicional de privacidad y seguridad para la administración remota.
¿Cómo funciona SSH?
SSH utiliza dos archivos:
Llave privada
Se queda en tu computadora:
~/.ssh/id_ed25519
Nunca debe compartirse.
Llave pública
Se copia al servidor:
~/.ssh/id_ed25519.pub
Puede compartirse libremente.
Cuando te conectas, el servidor verifica que posees la llave privada correspondiente a la llave pública autorizada.
¿Qué es SSH sobre Tor?
Normalmente te conectas a un servidor así:
ssh usuario@192.168.1.100
o
ssh usuario@midominio.com
Con Tor, el servidor dispone de una dirección especial:
ejemplo123456789abcdef123456789abcdef123456789abcdef1234.onion
Y la conexión se realiza mediante la red Tor:
torsocks ssh usuario@ejemplo123456789abcdef123456789abcdef123456789abcdef1234.onion
Ventajas de SSH mediante Tor
✅ No expones la IP pública del servidor.
✅ El servidor puede permanecer oculto.
✅ El acceso puede limitarse exclusivamente a la red Tor.
✅ Compatible con autenticación por llaves SSH.
Requisitos
Servidor Linux con:
- OpenSSH Server
- Tor instalado
Cliente Linux con:
- OpenSSH
- Tor
- torsocks
Instalación:
sudo apt install tor torsocks
Configurar el servicio oculto
Editar:
sudo nano /etc/tor/torrc
Agregar:
HiddenServiceDir /var/lib/tor/ssh/
HiddenServicePort 22 127.0.0.1:22
Reiniciar Tor:
sudo systemctl restart tor
Obtener la dirección onion:
sudo cat /var/lib/tor/ssh/hostname
Resultado:
ejemplo123456789abcdef123456789abcdef123456789abcdef1234.onion
Crear una llave SSH
En tu computadora ejecuta:
ssh-keygen -t ed25519
Verás:
Generating public/private ed25519 key pair.
Enter file in which to save the key:
Presiona Enter para aceptar la ubicación predeterminada:
/home/usuario/.ssh/id_ed25519
Después puedes:
- Establecer una passphrase (recomendado)
- O dejarla vacía para mayor comodidad
Verificar los archivos creados
ls -la ~/.ssh
Deberías ver algo parecido a:
id_ed25519
id_ed25519.pub
Copiar la llave pública al servidor onion
Utilizando torsocks:
torsocks ssh-copy-id usuario@ejemplo123456789abcdef123456789abcdef123456789abcdef1234.onion
Introduce la contraseña actual del usuario.
Probar la conexión
torsocks ssh usuario@ejemplo123456789abcdef123456789abcdef123456789abcdef1234.onion
Si todo está correcto accederás mediante la llave SSH.
Desactivar contraseñas
Editar:
sudo nano /etc/ssh/sshd_config
Agregar y pega al final:
PermitRootLogin no
PubkeyAuthentication yes
PasswordAuthentication no
KbdInteractiveAuthentication no
PermitEmptyPasswords no
Comprobar si no sale ningún error todo salio bien:
sudo sshd -t
Reiniciar:
sudo systemctl restart ssh
Hacer que SSH solo sea accesible mediante Tor
Para impedir accesos por red convencional:
Editar:
sudo nano /etc/ssh/sshd_config
Agregar:
ListenAddress 127.0.0.1
Reiniciar:
sudo systemctl restart ssh
Ahora SSH solo escuchará localmente y será accesible mediante el servicio onion configurado.
¿Una sola llave para todos los servidores onion?
Sí.
Puedes reutilizar la misma llave:
id_ed25519
id_ed25519.pub
en múltiples servidores.
¿Una llave diferente para cada servidor onion?
También es recomendable para entornos sensibles.
Ejemplo:
ssh-keygen -t ed25519 -f ~/.ssh/onion_admin
Conexión:
torsocks ssh -i ~/.ssh/onion_admin usuario@ejemplo123456789abcdef123456789abcdef123456789abcdef1234.onion
Esto permite aislar accesos y revocar credenciales individualmente.
SSH sobre Tor proporciona una forma privada de administrar servidores sin exponer direcciones IP públicas. Al combinarlo con autenticación mediante llaves públicas y deshabilitar el acceso por contraseña, se obtiene una configuración robusta, ampliamente utilizada en servidores personales, laboratorios y servicios que requieren un mayor nivel de privacidad.



