En la oficina, puedo conectarme a máquinas internas sin un proxy, pero necesito un proxy para conexiones externas. Fuera de la oficina, puedo conectarme a otras máquinas externas sin un proxy, pero necesito usar uno de los 2 proxies para conectarme a máquinas internas.
Si puedo encontrar una manera de autodetectar en qué red estoy, ¿puedo indicarle a ssh que cargue el archivo de configuración apropiado?
Si no, ¿hay una solución más elegante que escribir un script de shell para vincular el archivo de configuración apropiado a ~ / .ssh / config (mi mejor idea hasta ahora)?
Editar: creo que @pcm y JonnyRo entendieron mi pregunta e intentaré lo que sugieren, pero para ser claros, quiero
|--------\ Dest | abc.example.com | xyz.external.org |
| Source \---------\| | |
|--------------------+-----------------+------------------|
| example.com office | No Proxy | Proxy |
| outside | Proxy | No Proxy |
Escriba una secuencia de comandos de shell que compruebe su IP contra un patrón, luego enlace simbólicamente la secuencia de comandos de shell adecuada.
Si por algún motivo su rango de IP es el mismo para el hogar y el trabajo, intente cambiar según /etc/resolv.conf, que contiene los servidores DNS configurados por DHCP.
fuente
La opción "Host" en .ssh / config le permite cambiar la configuración en función del destino. Lo uso para ajustar el reenvío de puertos y demás según el lugar al que voy.
fuente
He examinado esta pregunta en el pasado y una posible solución es tener esa entrada en el archivo de configuración:
De esta manera, si está afuera, puede $ ssh machine.inside_domain. Si está dentro y tiene resolución DNS, puede $ ssh machine. Eso funciona bien para mi.
Tal vez alguien pueda mejorar esta idea, tal vez cambiando la configuración de DNS para que resuelva automáticamente máquina a máquina.inside_domain si está afuera y usa el punto de entrada SSH.
fuente