SSHトンネリングの説明


8

sshトンネリングについて質問があります。私はこの記事を読みました

X転送を機能させ、自宅でXアプリケーションをいくつか実行して、リモートシステムに表示させたい:

 ssh -X -R 5555:localhost:22 user@remoteserver.com -N

リモート:

 ssh -X -p 5555 user@192.168.1.2

その後、自宅で:

 //configure sshd to listen on 5555
 ssh user@remoteserver.com
 //here run some app

うまくいくでしょうか?


うまくいくかどうかを尋ねる代わりに、それを試してください。
Wutaz 2013

はい、常に試してみるのが最善です。それでもうまくいかない場合は、その理由を尋ねてください。
slm

逆方向に実行しているように聞こえますが、「通常」はリモートで実行してローカルに表示することです。リモートで表示したい場合は、ネットワークについて教えてください。シンプルで、sshも必要ない場合があります。
Skaperen 2015年

回答:


9

スケッチを描いた

sshトンネルコマンドが入力されるマシンは、「ホスト」と呼ばれます

ローカルから始まるSSHトンネル


リモートから始まるsshトンネル

前書き

  1. 地元: -L Specifies that the given port on the local (client) host is to be forwarded to the given host and port on the remote side.

    ssh -L sourcePort:forwardToHost:onPort connectToHostつまり、sshを使用してに接続しconnectToHost、すべての接続試行をと呼ばれるマシンのローカルの sourcePortポートonPortに転送します。forwardToHostこれは、connectToHostマシンから到達できます。

  2. リモート: -R Specifies that the given port on the remote (server) host is to be forwarded to the given host and port on the local side.

    ssh -R sourcePort:forwardToHost:onPort connectToHostつまり、ssh to connectToHostで接続し、すべての接続試行を、ローカルマシンから到達できると呼ばれるマシンのリモート sourcePortポートonPortに転送forwardToHostします。

あなたの例

ええと、X転送を機能させたいだけの場合、つまり自宅のコンピューターでXアプリケーションをいくつか実行し、それらをリモートシステムに表示させます(職場にある可能性があるため、これを「仕事用コンピューター」と呼びましょう)。 sshトンネルはまったく必要ありません。

トンネルなしで Xアプリケーション起動する

仕事用のコンピューターから自宅のコンピューターにSSHで接続できますか?もしそうなら、あなたがしているとき、仕事用のコンピュータ上に座っやXアプリケーションを開始したい自宅のコンピュータ上で実行されますが、あなたの仕事のコンピュータ上displayesを、あなたは(仕事用のコンピュータ上で)を入力する必要があります。

ssh -X homeuser @ homecomputer firefox

これにより、自宅のコンピューターでFirefoxが起動し、このコマンドを入力したマシン(職場のコンピューターなど)に表示されます。

隠しコンピュータにはトンネルが必要

これは私のスケッチの画像番号3です。ホームコンピューターは、ファイアウォールの背後にあるか、NATを介して(ルーターから)隠されているため、インターネットから直接到達できないことがよくあります。その後、トンネルを使用できます。

あなたに青い自宅のコンピュータ(yourhost)次のように入力します。

ssh -R 5555:localhost:22 remoteuser@remotehost

画像5555の緑色のポートと22ピンクのポートはどこですか。

職場で、で、remotehost緑色のポートに接続している5555場合、接続はトンネリング/ホームコンピューターのピンクポートlocalhost(つまり、青色のホームコンピューター自体)に転送されます。次に、仕事用のコンピューターに入力する必要があります。

ssh -X -p 5555 homeuser@localhost firefox

これにより、自宅のコンピュータ(yourhost)でFirefoxが起動し、このコマンドを入力したマシン(職場のコンピュータ(remotehost)など)に表示されます。


1

転送するリモートディスプレイを指定する必要があります。リモート:

DISPLAY=:0 ssh -X -p 5555 user@localhost # not sure why you used 192.168.1.2

:0ディスプレイを転送します。

次に、そのシェル(ホームマシンで実行中)で、次のコマンドを実行します。

echo "$DISPLAY"

転送表示とは何かを調べるため。これはのようなものになります。つまり、リモートマシンのlocalhost:10ディスプレイ:0に接続するには、ポート6010でTCP接続を行う必要があります(の:0ようなUnixドメインソケットに接続することを意味します/tmp/.X11-unix)。

次に、マシン上のアプリケーションがリモートサーバーのディスプレイに表示されるようにするには、使用するように指示するだけlocalhost:10です。

DISPLAY=localhost:10 xlogo

例えば。

これはトンネルの上のトンネルです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.