
質問設定された SSH チャネルの使用持つ回答これが私の関心を呼び起こしました。既存のSSH接続を再利用できることを示します。しかし、もっと読むと、このソリューションが私の場合(同時に複数のトンネル)では機能しない可能性があることがわかりました。
私は2012年3月14日にOpenSSH_5.9p1 Debian-5ubuntu1.1、OpenSSL 1.0.1(Kubuntu 12.04)を使用しています。
現在bashスクリプトで実行されている作業は次のとおりです。
echo "establishing SSH tunnel for SFTP && opening Dolpin with SFTP connection to remote computer..."
ssh -i "$ID_RSA" "$MIDDLEMAN_USER@$MIDDLEMAN_SERVER" -fL $PORT_NUMBER:localhost:$PORT_NUMBER sleep 20; dolphin sftp://HostSftp:$PORT_NUMBER &
echo "establishing SSH tunnel for VNC && connecting to VNC server for remote desktop support..."
sudo ssh -fL 5901:localhost:$VNC_PORT_NUMBER -i "$ID_RSA" "$MIDDLEMAN_USER@$MIDDLEMAN_SERVER" sleep 20; vncviewer localhost:5901
私の懸念(そしてこれが私にとってうまくいかないと思う理由)は次のとおりです。
欠点は、sshの一部の使用が複数の接続で機能しない可能性があることです。最も注目すべきは、git、svn、またはrsyncなどのトンネリングまたはポート転送を使用するコマンドです。源泉
これ:
構成ファイルでLocalForwardまたはRemoteForwardを使用すると、微妙な問題が発生する可能性があります。 ...SSH1(しかし、OpenSSHではありません)ソリューションを提供します。源泉
私は説明と説明を探しています。
- 1つのプライマリ接続で上記の2つのトンネルを設定できますか?
- 別の接続を確立するのと同じくらい安定していますか?
- 上記の両方が該当する場合はどうすればよいですか?
ありがとう
答え1
デフォルト接続を使用しても、接続共有(-S
、、、-M
)-o ControlXXX
に関連するオプションを除いてsshを呼び出す方法は変わりません。マスター接続で変更されるすべては、マスター接続がすでに確立されている場合、新しいスレーブ接続が再認証するのではなく、その接続を通過することです。これにより、パスワードやキーを提供する必要がなくなり、新しい接続設定が大幅に高速化されます。
多重化はアプリケーションに影響を与えません。ファイアウォールの場合は異なります。複数の接続ではなく、1つの接続しかありません。
なぜかはわかりませんが新カート「sshは多重化された接続では機能しない可能性があります。特に、git、svn、またはrsyncなどのトンネリングまたはポート転送コマンドがあります。」多重化なしで動作する場合、アプリケーションは違います。
これSSHの最終ガイド接続の多重化を意味するのではなく、「設定ファイルでLocalForwardまたはRemoteForwardを使用してください」 (この本は、接続の多重化が存在する前にさかのぼります。)これは、特定のポートで受信トンネルを一度だけ設定できることを意味します。これは再利用に関するものではなく、配信に関するものです。
多重化の使用を開始するには、次の行を に追加します~/.ssh/config
。
ControlMaster auto
ControlPath ~/.ssh/%l_%h_%p_%r.multiplex
それはすべてです。ホストへの接続を確立し、明示的に終了するまでそれを維持するには、を実行しますssh -N destination &
。もはやデフォルト接続が必要ない場合は、クライアントをシャットダウンします。それでも以前と同じようにトンネルを設定する必要があります。
ホストを複数のリレーとして使用する場合は、次の設定をお勧めします。靴下代理人。ssh -D 1234 destination
SOCKS対応アプリケーションを実行し、にあるSOCKSプロキシを使用するように指示しますlocalhost:1234
。もちろん、これはSOCKSを理解するアプリケーションでのみ機能します。靴下SOCKSを認識しないアプリケーションへのほとんどのネットワーク接続はSOCKSプロキシを通過します(tsocksはライブラリ呼び出しをラッパー機能にリダイレクトすることによって機能します)。