2016年5月30日月曜日

sshトンネルを使ったリモートデスクトップその1

今度は、sshトンネルを使ったリモートデスクトップだ。

その前に、ssh(sshスイート)を何に使っていますか?ってところから整理しよう。
主に以下の3点じゃないだろうか?
  • LinuxやUnixへのリモートログイン
    (sloginコマンド)
  • 暗号化された通信を用いたファイル転送
    (scp/sftpコマンド)
  • 暗号化された通信を用いたリモートコマンド実行
    (sshコマンド)
sshってのは、上記以外にもう一つ、大きな機能がある。それがポートフォワーディングと呼ばれているものだ。

あれ?タイトルには「sshトンネル」って書いてあるよ?
そう。sshトンネルってのは別称で、正しくはsshポートフォワーディングだ。

そして、sshポートフォワーディングには、

  • ローカルポートフォワーディング
  • リモートポートフォワーディング

の2種類がある。
それぞれ、ざっくりと図解すると、以下のようになる。
ローカルポートフォワーディング

リモートポートフォワーディング

ローカルポートフォワーディングの方は、自分自身の端末(PC)へのアクセスを、遠隔のサーバに転送する仕組みだ。
リモートポートフォワーディングはその逆。

上記図では、自分とssh接続先だけの関係だが、ちょっと手を加えると以下の様なことも可能になる。
ローカルポートフォワーディング例

リモートポートフォワーディング例

この図の通り、2台の機器の間でssh通信を確立しておくことで、別の機器からの通信も出来るようになる。
(但し、通常はセキュリティを考慮して、別の機器からの通信は出来ないようにしますが…)

これには幾つか制約があって、何でもかんでも転送出来るわけではない。
ざっと…

  • 転送可能なのはTCPのみ
  • サーバ側ポートが変動したり、逆方向接続が発生するものはNG(ftpとか)

だ。
つまり、TCPで固定ポートを用いる通信であれば、転送させることが可能になる。

この機能を使えば、自宅内のWindowsPCに、屋外からリモートデスクトップ接続出来るようになる、というのが今回の趣旨。(やっと目的の話に…)

ちょっと長くなったので、ココで一旦分離。

0 件のコメント:

コメントを投稿