
SSH トンネリングを使用して、特定のマシンからマシンのグループに接続したいのですが、見つかったすべてのソリューションでは、SSH 構成ファイルでマシンごとにエントリを指定する必要があります。次のようにワイルドカードを使用したいと思います。
Host *.mydomain.com
// some magic here
現時点で見つかった最善の解決策は次のとおりです。
答え1
トンネル サーバーでnc
やnetcat
などのプログラムを実行できる場合は、ポート転送の代わりに を使用できます。socat
ProxyCommand
# Only necessary if it matches the *.mydomain.com wildcard. Useless otherwise.
Host tunnelbox.mydomain.com
ProxyCommand none
Host *.mydomain.com
ProxyCommand ssh tunnelbox.mydomain.com nc %h %p
#ProxyCommand ssh tunnelbox.mydomain.com ncat %h %p
#ProxyCommand ssh tunnelbox.mydomain.com socat stdio tcp:%h:%p
#ProxyCommand ssh tunnelbox.mydomain.com netcat %h %p
トンネル サーバーにインストールされているツールに応じて、適切な ProxyCommand のコメントを解除します。
トンネルが確立されるたびに個別のSSH接続が確立および切断されるため、SOCKS経由よりも接続が遅くなることに注意してください。(パフォーマンスには影響しません。後ただし、接続は可能です。
SSH バージョンがサポートしている場合は、接続の多重化を有効にすることができます。
Host tunnelbox.mydomain.com
ControlMaster no
ControlPath none
Host *.mydomain.com
ControlMaster auto
ControlPath ~/.ssh/S.%l.%r@%h:%p
ControlPersist 10m