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

Ssh – Teamviewerを置き換えるためのSshリバーストンネルを介したリモートデスクトップ?

SSH(リバース)トンネルを介してラップトップからデスクトップへのリモートデスクトップセッションを開きたい。それは単純な(または少なくとも実行可能)はずですよね?これまで、TeamViewerを使用してリモートデスクトップにログインしてきました。 TeamViewerなしでも同様の結果を達成したい。

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

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

すべてのマシンでLinuxが実行されています(主にKubuntu12.04またはOpenSuse12.3)。 NATルーターのポートを変更したり、構成を変更したりできません。

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

middleman<--nat<--desktop

…これがその確立方法です:

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

この脚について:

laptop--->nat--->middleman

次のように仲介者に接続できます:

[email protected]:~$ ssh -i ~/.ssh/id_rsa [email protected]  

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

[email protected]:~/.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つのステップで「デスクトップ」に接続します。

[email protected]:~$ ssh family_desktops -p 1234

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

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

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

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

仲買人<–nat <–desktop

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

トンネルの設定:

[email protected]:~$ sudo ssh family_desktops

VNCクライアント:

connect to localhost:5901

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

ProxyCommandでいくつかのバリエーションを試しましたが、どれも成功しませんでした。明らかに、ProxyCommandに含める必要のあるパラメーターと、sshコマンドラインに含める必要のあるパラメーターについて推測しています。セットアップに潜在的な問題がいくつか見られますが、すべてが機能する理由を理解できていません。

関連:すべてのバックグラウンドジョブを強制終了しますか?

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

承認された回答:

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


Linux
  1. HTTPS SSH トンネル

  2. ssh での rsync の読み取り専用/リモート ホストからのコピーのみを制限する

  3. SSH リモート アクセス VPN トンネル

  1. Ssh – Sshを介してStdoutをリダイレクトしますか?

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

  3. リバース (リモート) SSH トンネルを介した SSH 接続

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

  2. Ctrl-c Sshセッションでの処理?

  3. Linux でリバース SSH トンネルをセットアップする方法