Conectar SSH a través de un proxy HTTP
Lleva una conexión SSH por un proxy HTTP CONNECT existente con un ProxyCommand por host.
Con un nc compatible con OpenBSD, añade esta entrada de host a la configuración del cliente SSH, por ejemplo ~/.ssh/config:
Host work-through-proxy
HostName ssh.example.com
User alex
ProxyCommand nc -X connect -x proxy.example.net:8080 %h %pUsa ssh work-through-proxy para esa ruta. El auxiliar pide al proxy HTTP un CONNECT a ssh.example.com y pasa el flujo aceptado a SSH. Si apuntaras SSH directamente al puerto del proxy, su handshake iría a un servicio que espera HTTP.
Sustituye el extremo, el destino y la cuenta. Para un destino SSH accesible públicamente donde se permite un intermediario público, la lista de proxies HTTP ofrece candidatos para comprobar el acceso a ese host y puerto; elige un extremo que no necesite cuenta de proxy para el comando mostrado. Estas opciones de OpenBSD nc dependen de la implementación; otro ejecutable llamado nc puede no admitirlas.
El proxy puede exigir su propio inicio de sesión o denegar el puerto SSH solicitado. Un 407 se refiere a ese intercambio con el proxy. Una vez abierto el túnel, SSH sigue verificando el host de destino y autenticando a su usuario; una clave SSH rechazada es otro fallo.
Mantén el ProxyCommand bajo la sección Host prevista y, cuando sea necesario, usa la vía de autenticación de proxy que admita el auxiliar elegido. El comando proporciona un flujo, no permiso a través del intermediario. Si solo se permiten destinos HTTPS, consigue un acuerdo de acceso SSH aprobado en lugar de suponer que otra forma de escribir el comando cambia la política.