Para levantar un proxy SOCKS5 mediante SSH con autenticación por clave y un bastionado básico en el servidor, sigue estos pasos:

Generar el par de claves en tu máquina local:

Ejecutar en tu equipo local.

Genera un par de claves moderno (Ed25519) si aún no lo tienes:

ssh-keygen -t ed25519 -a 100 -f ~/.ssh/id_proxy_ed25519 -C "proxy_key"

Copiar la clave pública al servidor:

Ejecutar en el servidor.

Sube la clave pública directamente a tu usuario en el servidor:

ssh-copy-id -i ~/.ssh/id_proxy_ed25519.pub usuario@IP_DEL_SERVIDOR

Bastionar la configuración del servidor SSH:

Ejecutar en el servidor.

En el servidor, edita /etc/ssh/sshd_config (o crea un archivo en /etc/ssh/sshd_config.d/proxy.conf) para desactivar el login por contraseña y permitir forwarding:

# Autenticación y acceso
PubkeyAuthentication yes
PasswordAuthentication yes
PermitEmptyPasswords no
PermitRootLogin yes

# Requerido para túneles y proxy SOCKS
AllowTcpForwarding yes
AllowAgentForwarding no
X11Forwarding no

Aplica los cambios reiniciando el servicio:

sudo systemctl restart ssh

Configurar un alias local en ~/.ssh/config:

Ejecutar en tu equipo local.