No escritório, posso conectar-me a máquinas internas sem um proxy, mas preciso de um proxy para conexões externas. Fora do escritório, posso conectar-me a outras máquinas externas sem proxy, mas preciso usar um dos 2 proxies para conectar-me a máquinas internas.
Se eu descobrir uma maneira de detectar automaticamente em que rede estou, posso instruir o ssh para carregar o arquivo de configuração apropriado?
Caso contrário, existe uma solução mais elegante do que escrever um script de shell para vincular o arquivo de configuração apropriado a ~ / .ssh / config (minha melhor idéia até agora)?
Edit: Eu acho que @pcm e JonnyRo entenderam minha pergunta e tentarei o que eles sugerem, mas, para deixar claro, eu quero
|--------\ Dest | abc.example.com | xyz.external.org |
| Source \---------\| | |
|--------------------+-----------------+------------------|
| example.com office | No Proxy | Proxy |
| outside | Proxy | No Proxy |
Escreva um script de shell que verifique seu IP em relação a um padrão e depois vincule o script de shell apropriado.
Se, por algum motivo, seu intervalo de IP for o mesmo para casa e trabalho, tente alternar com base no /etc/resolv.conf, que contém os servidores DNS configurados por DHCP.
fonte
A opção "Host" em .ssh / config permite alterar a configuração com base no destino. Eu uso isso para ajustar o encaminhamento de porta e outros com base em onde estou indo.
fonte
Eu examinei essa questão no passado e uma solução possível é ter essa entrada no arquivo de configuração:
Dessa forma, se você estiver fora, pode $ ssh machine.inside_domain. Se você está dentro e tem o dns resolvendo, pode usar a máquina $ ssh. Isso funciona bem para mim.
Talvez alguém possa melhorar essa idéia, talvez alterando a configuração do DNS para resolver automaticamente machine to machine.inside_domain se você estiver fora e usar o ponto de entrada SSH.
fonte