問題は次のとおりです。少なくとも3つの異なるネットワークから(場合によっては直接、場合によってはプロキシを介して)異なる時間にアクセスできるシステムにSSHで接続しようとしています。
直接接続は、一般的なインターネット経由で接続するよりもはるかに高速で信頼性の高い中間ホストを介して接続するよりもはるかに高速で信頼性が高いため、SSHは、優先順位を付けて3つの異なる方法で接続を試み、最初に成功します。
もちろん、これらはすべて同じマシンなので、接続元に応じて3つの異なるエイリアスから手動で選択する必要はありません。
しかし、これを解決するためのメカニズムは見つかりません。これを行うことは可能ですか、それともできませんか?
そうでない場合、人々はそのような状況で一般的に何をしますか?
承認された回答:
ssh
にエイリアスを使用しないでください 接続!適切なssh_config
を使用してください ~/.ssh/config
内 。本当に強力な機能がいくつかあります。
自分がどのネットワークにいるかを識別できるとしましょう。たとえば、IPを使用します。これは、たとえばhostname -I
を使用してプルできます。 。それでは、いくつかの構成を書いてみましょう:
# 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
私はあなたがポイントを得たと信じています…