2 台のシステム間の SSH トンネルは、3 台目のシステムにのみ SSH 経由で接続できますが、互いに直接接続することはできません。

2 台のシステム間の SSH トンネルは、3 台目のシステムにのみ SSH 経由で接続できますが、互いに直接接続することはできません。

私の設定には3台のコンピュータがあります。

M1     M2     M3
  • M3を制御するM1でSSHシェルを開く必要があります。
  • M1 と M3 は異なるファイアウォールの背後にあるため、互いに直接接続することはできません。
  • M1とM3できるM2に接続し、SSH経由で接続します。しかし、その逆は真実ではありません。 M2はM1またはM3に到達できません。

M2を使用してM1からM3までのトンネルを作成できますか?

M1 --> M2 <-- M3
 \____________^

答え1

M3から

ssh -R localhost:2602:localhost:22 user@M2

M1から

ssh -L localhost:2602:localhost:2602 user@M2

これでM1からM3に直接接続できます(ここでlocalhostは実際にはM3を表します)。

ssh user@localhost -p 2602

答え2

私は-Jこれをするために(「ジャンプ」だったことを覚えています)を使います。

M1 -> M3(M2経由):

ssh -J M2 M3 

scp次のものもサポートします。

scp --ProxyJump=M2 localfile M3:remotefile

IPの面で説明するのが一番簡単だと思います。

M1 = 192.168.1.100
M2 = 192.168.1.101 & 10.10.1.200
M3 = 10.10.1.201

M1はアクセスできないため、10.10.1.x両方のネットワークはM2を介してアクセスする必要があります。これは、各システムに異なるユーザーがいると仮定すると複雑になります。 M1からM3へのSSH:

[email protected]: ~ $ ssh -J [email protected] [email protected]

またはremotefileM3からM1へ:

scp [email protected] [email protected]:remotefile localfile

関連情報