![ゲートウェイ経由で VNC を使用するために SSH をトンネリングする](https://rvso.com/image/1344727/%E3%82%B2%E3%83%BC%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A4%E7%B5%8C%E7%94%B1%E3%81%A7%20VNC%20%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%99%E3%82%8B%E3%81%9F%E3%82%81%E3%81%AB%20SSH%20%E3%82%92%E3%83%88%E3%83%B3%E3%83%8D%E3%83%AA%E3%83%B3%E3%82%B0%E3%81%99%E3%82%8B.png)
この状況について、何かヒントをいただけませんか。会社にデスクトップ コンピューター (Ubuntu で実行) があります。会社には、デスクトップ コンピューターを SSH 経由で接続するのに役立つ VPN ゲートウェイがあります。今、自宅のデスクトップ コンピューターを VNC でリモート制御したいと考えています。xtightvncserver はすでにインストールされており、デスクトップ コンピューターですでに実行されています。
vnc-client を使用するために、自分のラップトップと会社のゲートウェイの間に SSH トンネルを作成するにはどうすればよいでしょうか。詳しい情報をいただければ幸いです。コンピューターに次のように名前を付けたいと思います。
company-pc - 職場のデスクトップ コンピューター (vnc サーバー)
company-gw - 会社の VPN ゲートウェイ (OpenSSH サーバーを実行)
my-laptop - 自宅のラップトップ コンピューター (vnc クライアント)
答え1
ご質問の意味を理解している限りでは、company-pc または company-gw から my-laptop に接続することはできませんが、my-laptop から company-gw へ、また company-pc から company-gw へは接続できます。その通りですか? おっしゃっているデスクトップ コンピューターが何なのかわかりません。
my-laptop が sshd を実行している場合は、これを試してください。
まだ家にいるときに、私のラップトップから:
ssh -R 8022:localhost:22 myusername@company-gw
ログインすると、company-gw のポート 8022 への (どこからでも) 接続は、my-laptop のポート 22 に転送されます。仕事に行くときはログインしたままにしてください。
職場で、会社のPCから:
ssh -L 5900:localhost:5900 -p 8022 myhomeusername@company-gw
これを行うと、company-gw のポート 8022 が my-laptop のポート 22 に転送されるため、実際には my-laptop に ssh 接続することになります。これで、company-pc のポート 5900 が my-laptop のポート 5900 に転送されることになります (このコマンドの「localhost」は、my-laptop が localhost と呼んでいるものなので)。
次に、ローカルホストに VNC します。これにより、自分の company-pc のポート 5900 に接続され、company-gw 経由で my-laptop に転送されます。
転送されたポートのいずれかが使用中の場合は、空いているポートが見つかるまで別の番号(8022ではなく8023、最初の5900ではなく5901)を試してください。
答え2
サーバーに sshd を有効化/起動するためのアクセス権や管理権限がない場合、または my-laptop にユーザー/パスワードのペアがない場合には、別の回避策があります。
my-laptop でこれを実行します:
ssh -R 8022:localhost:5900 gw-user@company-gw
この方法では、company-gw:8022 からのすべての使用は、my-laptop:5900 にリダイレクトされます。
会社のPCの場合:
ssh -L 5900:localhost:8022 gw-user@company-gw
gw-user はコマンドによって異なる場合があります。重要なのは、両端で 8022 ポートに到達可能であることです。