Zde je problém:Snažím se SSH do systému, který je přístupný z alespoň 3 různých sítí – někdy přímo, někdy přes proxy – v různých časech.
Přímé připojení je mnohem rychlejší a spolehlivější než připojení přes zprostředkujícího hostitele, což je opět mnohem rychlejší a spolehlivější než připojení přes obecný internet, takže bych chtěl, aby se SSH pokusilo připojit 3 různými způsoby prioritním způsobem, s výběrem první, která uspěje.
Jsou to samozřejmě všechny stejné stroje, takže nechci pořád ručně vybírat mezi 3 různými aliasy podle toho, odkud se připojuji.
Nemohu však najít žádný mechanismus, jak to vyřešit. Je to vůbec možné, nebo ne?
Pokud ne, co lidé obecně v takové situaci dělají?
Přijatá odpověď:
Nepoužívejte aliasy pro ssh
spojení! Použijte správný ssh_config
v ~/.ssh/config
. Má některé skutečně výkonné funkce.
Řekněme, že můžete identifikovat, ve které síti se nacházíte. Například pomocí vaší IP, kterou lze získat například pomocí hostname -I
. Pojďme tedy napsat nějakou konfiguraci:
# in network1 I am getting ip from "10.168.*.*" and I need to connect through proxy
Match Host myalias Exec hostname -I | grep 10\.168\.
Hostname real-host-IP
ProxyCommand ssh -W %h:%p proxy-server
# in network2 I am getting IP from "192.168.*.*" and I do not need a proxy
Match Host myalias Exec hostname -I | grep 192\.168\.
Hostname real-host-IP
# in network3 I am getting something else
Věřím, že jste pochopili pointu…