その1、その2では、SSHトンネルを張るための中継サーバを作成・設定しました。ここではいよいよSSHトンネルを張って、遠隔操作をしてみましょう。まずはMacにてVNCを使用した例です。
3. 遠隔操作対象パソコンから中継サーバに対してSSHトンネルを張る
安全な遠隔操作には2本のSSHトンネルが必要ですが、まずは遠隔操作対象パソコンから中継サーバに対してSSHトンネルを張りましょう。
$ ssh -R 55900:localhost:5900 aws-relay-server Last login: Sun Jun 25 01:56:28 2017 from xxxxx.xxxx.ne.jp __| __|_ ) _| ( / Amazon Linux AMI ___|\___|___| https://aws.amazon.com/amazon-linux-ami/2017.03-release-notes/
中継サーバ(aws-relay-server)の55900番ポートにアクセスしたら、遠隔操作対象パソコン(localhost)の5900番(VNC)ポートに転送する、というSSHトンネル1が張られました。
-Rオプションはコマンドを実行したパソコンとは逆側のSSHログイン先のパソコン(今回は中継サーバ)からコマンドを実行したパソコンへ向かって逆向きにSSHトンネルを張るというオプションです。
4. 遠隔操作をする場所のパソコンから中継サーバに対してSSHトンネルを張る
つぎに遠隔操作をする場所のパソコンから中継サーバに対してSSHトンネルを張りましょう。
$ ssh -L 5901:localhost:55900 aws-relay-server Last login: Sun Jun 25 01:56:28 2017 from xxxxx.xxxx.ne.jp __| __|_ ) _| ( / Amazon Linux AMI ___|\___|___| https://aws.amazon.com/amazon-linux-ami/2017.03-release-notes/
遠隔操作をする場所のパソコンの5901番ポートにアクセスしたら、中継サーバ(aws-relay-server)の55900番ポートに転送する、というSSHトンネル2が張られました(注記:localhost:55900の”localhost”は、中継サーバにおけるlocalhostのことです。紛らわしいですが)。
-Lオプションはコマンドを実行したパソコンからSSHログイン先のパソコン(今回は中継サーバ)へ向かって順方向にSSHトンネルを張るというオプションです。
これで2本のSSHトンネルが張られ、遠隔操作をする場所のパソコン(localhost)の5901番ポートにアクセスしたら、中継サーバ(aws-relay-server)の55900番ポートを経由して、遠隔操作対象パソコンの5900番ポート(VNC)へ転送されるようになりました。
5. VNCで接続してみる
いよいよ遠隔操作ができる環境が整いました。早速、Mac標準のVNCで遠隔接続してみましょう。
-1. 遠隔操作をする場所のパソコンでFinderを開く
-2. 移動、サーバへ接続を表示
-3. vnc://localhost:5901 を入力して接続
遠隔操作対象のPCの画面が表示されれば成功です。遠隔ログインできない場合は、遠隔操作対象PCの画面共有(システム環境設定−共有−画面共有)が有効になっているか確認してみてください。
aws-relay-server以外はプライベートIPしか持っていなくても安全に遠隔操作できるようにすることができました。
6. Windowsのリモートデスクトップはどうするの?
ここではSSHが標準で利用できて設定が簡単なMacを例として取り上げました。ではWindowsでリモートデスクトップを利用するにはどうしたら良いでしょうか?Windowsを使う場合は、TeraTermやPuttyなどのSSHクライアントのインストールが必要ですが基本的なやり方は一緒だと思います。
違うところは、SSHトンネルのポートです。WindowsはVNCではなくRDP(3389番ポート)が標準なので、ここだけ変える必要があります。ただ、Macみたいなconfigが使えるか不明なのでコマンドをベタ打ちしてみます。aws-key.pemは実際にファイルがある場所を指定してください。
・遠隔操作対象パソコン
$ ssh -p 80 -i ./aws-key.pem -R 53389:localhost:3389 ec2-user@13.113.212.xxx
・遠隔操作をする場所のパソコン
$ ssh -p 80 -i ./aws-key.pem -L 53389:localhost:53389 ec2-user@13.113.212.xxx
あとはリモートデスクトップを開いて「localhost:53389」と打てば良いはずです。