私はしばらく3台のマシン(A
、、、B
)でSSH設定を使用してきました。私が接続したい2つの異なるLAN上のコンピュータとパブリックアドレスをC
持つ私のボックスA
です。C
B
私はマシンでA
次のことを行います。
ssh -p 443 -f -N -R 1987:localhost:22 hostname-of-B
機械にはC
以下があります~/.ssh/config
。
Host hostB
User user-of-B
HostName hostname-of-B
Host hostA
User user-of-A
ProxyCommand ssh -o 'GatewayPorts yes' -q hostB nc -q0 localhost 1987
だからC
から次に接続することができますA
。
ssh hostA
B
この設定は、インターネット接続が悪い他のコンピュータに切り替える必要があるまでうまく機能しました。今、接続状態が良いA
にもかかわらず、すべてが非常に遅いです。C
C
A
だから、からの最初の接続を確立した後からからの直接接続を確立することが可能かどうかを知りたいですB
。これにより方程式が削除され、接続速度が再び速くなります。A
C
B
答え1
いいえ、できません。再公開するには一般的なコンテンツが必要です。または、あるサーバーから別のサーバーへの各接続の可視性のため。
答え2
公開SSHアクセスが可能な他のマシンXがある場合は、遅いBを回避できます。これは、自宅のマシンでも、接続が良い非常に安価なリースパブリック仮想マシンでもかまいません。
Cでは、XからCへのリバーストンネルを開くことができます。
ssh -Nf -R 10022:localhost:22 user-of-X@hostname-of-X
次に、AのXを介して別の "hop-config"を追加します。
Host hostAviaX
User user-of-X
ProxyCommand ssh -o 'GatewayPorts yes'-q hostB nc -q0 localhost 10022
Aでssh hostAviaX
動作する必要があります。
Aあなたのルータを制御するネットワーク上のクライアントコンピュータで、AがパブリックSSHアクセスを持つようにポート転送を有効にできます。この場合、他のXは不要であり、上記の例ではX == Aを置き換えることができます。