SSHリバーストンネルによるTeamViewerのリモートデスクトップの置き換え

SSHリバーストンネルによるTeamViewerのリモートデスクトップの置き換え

SSH(リバース)トンネルを介してラップトップからデスクトップへのリモートデスクトップセッションを開きたいです。これは簡単でなければなりません(または少なくとも実行可能でなければなりません)。そうですか?これまでは、Team Viewerを使用してリモートデスクトップにログインしていました。 Team Viewerがなくても同様の結果が得られることを願っています。

私のSSHトンネルは次のとおりです。

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

すべてのコンピュータはLinux(主にKubuntu 12.04またはOpenSuse 12.3)を実行します。 NAT ルータでポートを変更したり設定を変更することはできません。

私の問題の中心であるVNC /リモートデスクトップの問題を解決するには、これを理解する必要があるように思われるので、SSHトンネルについて説明します。この足について:

middleman<--nat<--desktop

...次のように設定されました。

autossh -M 5234 -N -f -R 1234:localhost:22 [email protected]

この足について:

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など)などのリモートデスクトップソリューションが必要です。どのように?

これまでに試したことは次のとおりです。

ブローカー<--nat<--デスクトップ

autossh -M 5235 -N -f -R 1235:localhost:5901 [email protected]

接続を確立した後:

x11vnc -autoport 5901 

私はそれがポート5901に接続されているかどうかを見て確認し、実際に接続しました。

ノートブック--->nat--->仲介人<--nat<--デスクトップ

ラップトップ ~/.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

ncなしでステップ2を試すことはできますか?つまり、VNCを実行するには、-Lと-Rのみを使用します。問題は、あなたのnetcatセッションがすでに開いているセッションに再接続されることです。したがって、VNC操作を実行するときにnetcatを使用しないでください。

答え2

ProxyCommand以外の仲介者sshd.confに「gatewayports yes」を設定する必要があります。

  1. 次に、デスクトップから中間子にリモートトンネルを取得し、中間子でTCPポートxを開き、vncをローカルで開きます。
  2. その後、ノートブックから中間​​子までのローカルトンネルは、vncポートをlocalhostとして開き、それをxにトンネリングします。
  3. その後、localhost:vncに接続すると、ローカルトンネルを介してメッセージの傍受(man-in-the-middle)に接続され、リモートトンネルを介してノートブックvncに接続されます。

操作が完了したら、ゲートウェイポートのより安全な設定について詳しく学んでください。

関連情報