TeamViewerに代わるSSHリバーストンネルを介したリモートデスクトップ


14

SSH(リバース)トンネルを介してラップトップからデスクトップへのリモートデスクトップセッションを開きたい。それはシンプル(または少なくとも実行可能)である必要がありますか?これまで、私はTeam Viewerを使用してリモートデスクトップにログインしていました。Team Viewerなしで同様の結果を達成したいと思います。

SSHトンネルは次のようになります。

laptop--->nat--->middleman<--nat<--desktop

すべてのマシンでLinuxが実行されています(主にKubuntu 12.04またはOpenSuse 12.3)。natルーターでポートを変更したり、構成を変更したりすることはできません。

SSHトンネルについて説明します。これは、私の質問の核心であるVNC /リモートデスクトップの問題を解決するために必要であると思われるためです。この脚について:

middleman<--nat<--desktop

...それがどのように確立されているか:

autossh -M 5234 -N -f -R 1234:localhost:22 user@middleman.com

この脚について:

laptop--->nat--->middleman

次のようにして仲介者に接続できます。

me@laptop:~$ ssh -i ~/.ssh/id_rsa admin@middleman  

ただし、実際に行う必要があるのは、仲介者ではなくデスクトップに直接接続することです。そのためには、仲介業者でnetcat( "nc")を使用します。基づいて、このことは、NCが必要であると表示されます。そこで、ProxyCommandとncを使用するようにラップトップでSSH構成ファイルを編集します。

me@laptop:~/.ssh$ nano config

内容は次のとおりです。

Host family_desktops
  ProxyCommand ssh middleman_fqdn nc localhost %p
  User admin
  PasswordAuthentication no
  IdentityFile ~/.ssh/my_id_rsa

middleman_fqdn「middleman.com」のような場所

次に、1つのステップで「デスクトップ」に接続します。

me@laptop:~$ ssh family_desktops -p 1234

(私はここここでの助けと私が尋ねた他の関連する質問に基づいてこれを機能させました。私は何週間も取り組んでいるので、このトピックに関するたくさんの質問をしました。)

このSSH接続を使用して、というラベルの付いdesktopたコンピューター上の完全に機能するシェルに到達します。パーフェクト。

このSSHトンネルを介したVNCのような(またはTeamViewerのような)リモートデスクトップソリューションが必要になりました。どうやって?

ここに私がこれまで試したものがあります:

middleman <-nat <-desktop

autossh -M 5235 -N -f -R 1235:localhost:5901 user@middleman.com

その接続が確立された状態で:

x11vnc -autoport 5901 

私はそれがポート5901に接続することを確認するために監視します。

ラップトップ---> nat ---> middleman <-nat <-desktop

ラップトップ〜/ .ssh / config:

Host family_desktops
  ProxyCommand ssh -NL 5901:localhost:1235 middleman.com nc localhost 1235
  User admin
  PasswordAuthentication no
  IdentityFile ~/.ssh/my_id_rsa

トンネルのセットアップ:

me@laptop:~$ sudo ssh family_desktops

VNCクライアント:

connect to localhost:5901

これにより、「サーバーが見つかりません」というエラーが発生します

ProxyCommandで多くのバリエーションを試しましたが、どれも成功しませんでした。明らかに、ProxyCommandに含めるパラメーターとsshコマンドラインに含めるパラメーターを推測しています。私の設定には潜在的な問題がいくつかありますが、何がそれをすべて機能させるのか理解できませんでした。

PS前述のように、私はこれについていくつか質問をしました。それらのいくつかは私を解決策に近づけ、現在の質問の基礎を形成しました。このトピックに関する私の以前の質問の他の部分は、私の無知と正しい形式で質問をすることができないことを示しています。この時点で、この現在の質問は、私の問題が何であり、私の希望する解決策が何であるかを述べる最高の能力を表していますが、他の質問のいくつかも未解決のままです。関連するもの次に示します。


1
サイドノート:「here」または「this」リンクを使用しないでください。リンクのわかりやすい名前、たとえばリンクする質問のタイトルやWebページを指定します。
マルコ

前にこの質問をしませんでしたか?unix.stackexchange.com/questions/82255/...
SLM

@slm-私の質問のリンクをいくつか参照してください。それらは私の関連する質問の一部です。私はまだ解決策を達成しようとしていると、それぞれの質問は...近い私を取得しているようだ
MountainX-FOR-モニカ

これは信じられないほど複雑です。ファイアウォールでポートが開いている同じネットワーク上のマシンにもSSHで接続して、Windows 8マシンのリモートデスクトップを使用します。
ティム

@TimこれはリバースSSHトンネルでありdesktop、NATルーターの背後にあり、NATルーターの背後にあるため必要ですlaptop
MountainX-for-Monica

回答:


3

ncを実行せずに2番目のステップを実行できますか?つまり、-Lと-RだけでVNCを実行します。問題は、netcatセッションが既に開いているセッションに接続していることだと思います。そのため、VNCを行う際にはnetcatを使用しないでください。


1

ProxyCommandの代わりに、ミドルマンsshd.confに「gatewayports yes」を設定する必要があります。

  1. 次に、デスクトップからミドルマンへのリモートトンネルを使用し、ミドルマンでtcpポートxを開き、ローカルでvncを開きます。
  2. 次に、ラップトップから仲介者へのローカルトンネルを使用して、vncポートをローカルホストに開き、xにトンネリングします。
  3. 次に、localhost:vncに接続します。これにより、ローカルトンネル経由でmiddlemanへ、リモートトンネル経由でラップトップvncへ行きます。

動作するようになったら、ゲートウェイポートのより安全な設定について詳しく学んでください。

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