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 [email protected]
この脚について:
laptop--->nat--->middleman
以下のようにしてMiddlemanに接続できます。
me@laptop:~$ ssh -i ~/.ssh/id_rsa admin@middleman
ただし、実際に必要なのは、仲介者ではなくデスクトップに直接接続することです。これを行うには、middlemanでnetcat( "nc")を使用します。 this に基づいて、ncが必要であるようです。そこで、ラップトップでSSH構成ファイルを編集して、ProxyCommandとncを使用します。
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
(これは、ヘルプ here と here と私が尋ねた他の関連する質問に基づいて機能しました。私はこのトピックについて取り組んでいるので、何週間も。)
このSSH接続を使用して、desktop
というラベルの付いた自分のコンピューター上の完全に機能するシェルに到達します。完璧です。
これで、このSSHトンネルを介したVNCのような(またはTeamViewerのような)リモートデスクトップソリューションが必要になります。どうやって?
middleman <-nat <-desktop
autossh -M 5235 -N -f -R 1235:localhost:5901 [email protected]
接続が確立されている場合:
x11vnc -autoport 5901
ポート5901に接続していることを確認します。
ラップトップ---> nat --->ミドルマン<-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コマンドラインに含める必要があるパラメーターについては推測しています。セットアップでいくつかの潜在的な問題を確認できますが、すべてが機能する原因を理解できていません。
追伸言及したように、私はこれについていくつかの質問をしました。それらのいくつかは私を解決策に近づけ、私の現在の質問の基礎を形成しました。このトピックに関する私の以前の質問の他のいくつかは、私の無知と正しい形式で質問をすることができないことを示しています。この時点で、この現在の質問は私の問題が何であり、私が望む解決策が何であるかを述べる私の最高の能力を表していますが、他のいくつかの質問もまだ未解決のままです。 ここに1つあります 該当します。
Ncを実行せずに2番目のステップを試すことはできますか?つまり、-Lと-RだけでVNCを実行します。問題は、あなたのnetcatセッションがすでに開いているセッションに接続し直していることだと思います。したがって、VNCを行う場合はnetcatを使用しないでください。
ProxyCommandの代わりに、ミドルマンsshd.confに「gatewayports yes」を設定する必要があります。
動作させたら、ゲートウェイポートのより安全な設定について詳しく学びます。