GNU/Linux >> Linux の 問題 >  >> Linux

SSH トンネルを介して SSH を転送する

解決策 1:

問題は、リスナーを localhost:22; にバインドすることです。それを聞いているsshdがすでにあります。 ssh 接続を介して ssh 接続をトンネリングすることは完全に合法であり、私は常に行っていますが、転送リスナー用に未使用のポートを選択する必要があります。

試す

me% ssh [email protected] -L 2201:192.168.25.100:22

それから

me% ssh localhost -p 2201

サーバー B に到達する必要があります (何かが既に私にバインドされていない限り:2201。その場合は、別のポートを選択してください)。

解決策 2:

プロキシ経由で内部コンピューターに ssh 接続するために、ssh ポート フォワーディングを使用する必要はありません。 3 番目のコンピューターに ssh 接続するために、最初に接続したサーバーでコマンドを実行する ssh 機能を使用できます。

ssh -t [email protected] ssh [email protected]

-t オプションは、対話型コマンドを実行できるように、ssh に疑似 tty の割り当てを強制します。

これは、ssh キーでも機能します。マシン A に秘密鍵と公開鍵があり、マシン B と C の認証済み鍵ファイルに公開鍵がある場合、-A を使用できます。 認証エージェント接続を転送するオプション

解決策 3:

OpenSSH 7.3 (2016 年後半) の時点で、最も簡単な方法は ProxyJump 設定です。あなたの ~/.ssh/config で :

Host B
  ProxyJump A

またはコマンドラインで、 -J B .

解決策 4:

別のソリューションを使用しました。 ProxyCommand を使用しました オプション (ここでは ~/.ssh/config ):

Host myinsidehost1 myinsidehost2 myinsidehost3
ProxyCommand ssh externalhost ssh %h sshd -i

これは、ポート間トンネルをセットアップせず、代わりに標準の stdin/out を使用して ssh をトンネリングします。この方法には、認証する ssh 接続が実際には 3 つあるという欠点があります。ただし、内部ホストに接続するには、次のように入力するだけです:

ssh myinsidehost2

...そのため、そのトンネルの IP の選択を気にする必要はありません。

解決策 5:

ssh のマニュアル ページによると、ProxyCommand が正しい方法です

構文は次のとおりです:

ProxyCommand ssh -W %h:%p [email protected] 2> /dev/null

Linux
  1. Ssh – Sshを介した別のマシンを介したトンネルトラフィック?

  2. Ssh –複数のホストを介したScp?

  3. 再起動時にSSHトンネルを接続しますか?

  1. Sshトンネルを介してインターネットをルーティングする方法は?

  2. Linux で SSH 経由で X アプリケーションを実行できない

  3. SSH を介してすべてのネットワーク トラフィックをトンネリングするにはどうすればよいですか?

  1. ポートフォワーディングなしでルーター経由のssh

  2. SSH - ~/.ssh/config ファイルに -t コマンドを含める方法

  3. 複数のホップを介して SSH トンネル経由でデータをコピーする