問題はこれです:私は少なくとも3つの異なるネットワーク(時には直接、時にはプロキシを介して)からアクセスできるシステムに異なる時間にSSHを介してアクセスしようとしています。
直接接続は中間ホストを介して接続するよりも高速で信頼性が高く、通常のインターネットを介して接続するよりも高速で信頼性が高いため、SSHは優先順位に応じて3つの異なる方法で接続を試み、最初の方法を選択します。それが成功します。
明らかに、それらはすべて同じシステムなので、接続位置に応じて3つの異なるエイリアスの中から手動で選択したくありません。
ただし、この問題を解決するメカニズムが見つかりません。でもこれは可能ですか?
そうでなければ、人々は通常この状況で何をしますか?
ベストアンサー1
エイリアスを使用して接続しないでください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