Estaba jugando con la idea de tener un servidor proxy SSH o llamado Jump Host, que usaría para conectarme a todos mis"oculto"Servidores. Básicamente tengo la siguiente configuración. Tenga en cuenta que aquí uso intencionalmente direcciones IP en lugar de nombres de host.
<client> ---> <proxy_ssh> ---> <192.168.0.*>
Mi intención es que sea lo más transparente posible para los usuarios. Entonces, idealmente, los usuarios solo deberían ejecutar el siguiente comando
# ssh [email protected]
Para que esto funcione, he creado lo siguiente .ssh/config
.
Host *
ServerAliveInterval 240
Compression yes
ForwardAgent yes
ForwardX11 yes
Host 192.168.0.*
ProxyCommand ssh my_user@proxy_ssh.example.com netcat -w 120 %h %p
Esto funciona bien. Pero es un poco tedioso si tuviera más redes con las que trabajar detrás de mi proxy_ssh
servidor. Así que intenté simplemente agregar el ProxyCommand
a la Host *
sección que no funcionó.
Quería hacer esto más transparente para el usuario final y cambié la configuración de ssh a la siguiente, simplemente omitiendo la definición de Host específica.
Host *
ServerAliveInterval 240
Compression yes
ForwardAgent yes
ForwardX11 yes
ProxyCommand ssh my_user@proxy_ssh.example.com netcat -w 120 %h %p
Esto tuvo el impacto de que ya no pude conectarme al servidor final. ¡La conexión simplemente se agotó!
Entonces, mi pregunta es: ¿hay alguna forma de hacer esto más transparente de tal manera que toda mi conexión SSH use el proxy_ssh
host?
Respuesta1
El ejemplo anterior hará que sea recursivo, es decir, que cada conexión utilizará un comando de proxy, que nuevamente es ssh con otro comando de proxy. Buena manera de utilizar DOS en tu proxy.
Debe excluir el proxy de la lista, usarlo -F /dev/null
para ignorar la configuración del comando proxy o simplemente ignorar el comando proxy para el proxy ssh:
ProxyCommand ssh -oProxyCommand=none my_user@proxy_ssh.example.com netcat -w 120 %h %p
Respuesta2
Agregue una entrada a la configuración del host de salto que anule el comando de proxy:
Host proxy_ssh.example.com
ProxyCommand none
De lo contrario, intentará utilizar el comando proxy para acceder al host de salto.