
プライベート ネットワーク上にある、非常によく似たマシンにアクセスしたいと考えています: A
、、。JumpHost を構成し、これらがそれを使用できるように構成しました:B
C
J1
Host J1
HostName 123.123.123.123
User ciprian
Host A B C
HostName %h
User ciprian
ProxyJump J1
LocalForward 8501 localhost:8501
現在、2 番目の JumpHost をセットアップしており、またはのJ2
いずれかを介して同じマシンに接続したいと考えています。マシンの名前に が含まれている場合は を介してジャンプし、 が含まれている場合は を介してジャンプするように構成ファイルを記述する方法はありますか? もちろん、正確な一致を手動で指定する必要はありません :)J1
J2
J1
J1
J2
J2
設定は次のように記述できます:
# ...
Host *-J1
ProxyJump J1
Host *-J2
ProxyJump J2
Host A* B* C*
# --- Which Host name? ---
User ciprian
# ...
したがって、 を指定するssh A-J1
と、J1 をジャンプする設定が選択されます。ただし、 に関連する定義を解析するときに、が に解決されるため、A*
を指定できなくなり、 を に解決するようにしたいと思います。HostName
%h
A-J1
A
と を使用すると、何らかの魔法が実現できると信じていますCanonicalizeHostName
がCanonicalizePermittedCNAMEs
、その方法がわかりません。
答え1
ProxyCommand といくつかの小さなシェル スクリプトを使用できます。
Host *-prefix1
ProxyCommand ssh -q jump1 'H="%h"; nc ${H%%-prefix1} %p || echo "ProxyCommand failed! >&2"'
Host *-prefix2
ProxyCommand ssh -q jump2 'H="%h"; nc ${H%%-prefix2} %p || echo "ProxyCommand failed! >&2"'