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を使用しないでください。