VPNを使わないSSHを使ったリモート環境の構築

Tips
2020年04月25日 10:00

概要

作業のためのパソコンや環境が手元にない場合、VPNなどを使って作業用のパソコンやサーバがあるネットワークに繋ぐということがあると思います。

もっと具体的にいうならば、外部に公開していないWindowsのパソコンに、そのパソコンが接続されているネットワークにVPNで繋ぎ、リモートデスクトップ等でアクセスするということがあると思います。

今回は、VPNを使わずにリモートデスクトップ等を行うために、SSHを使ったリモート環境について紹介します。

VPNとは

VPNは、外部のネットワークから特定のネットワークにつなぐためのものです。つなぐことで、そのネットワークにコンピュータをつないでいるのと同じように動作させることができます。

そのため、企業などで自宅などの外から、企業内のネットワークからしかアクセスできないサービスなどにアクセスできるようにする際などに使われることが多いです。

しかし、VPNは設定が比較的難しいです。また、VPNのためのサーバを用意する必要があり、それなりの性能が要求されます。

以上のことから、なるべくならVPNを使わないようにしたいと考えています。

SSHとは

SSHは、リモートでサーバを操作するときに使われるものです。機能として、リモートからサーバでコマンドを実行することができます。

実はSSHには、他にも色々な機能があります。ここでは、その機能の内、「ポートフォワーディング」を使い、リモートからのアクセスを実現します。

ポートフォワーディング

SSHでは、基本的にコンソールにリモートからアクセスするものであるので、Windowsのリモートデスクトップのようなことはできません。

そこで、SSHのポートフォワーディングという機能を使い、リモートデスクトップのポートをSSHのクライアントに転送します。ポートを転送することで、リモートからリモートデスクトップでアクセスできます。

この方法の準備として、SSHサーバを用意して、そのサーバをルータの設定を変更するなどして公開します。

公開後は、SSHのクライアントから、ポートフォワーディングとして、リモートデスクトップのポートを転送します。デフォルトでは3389番が使われているので次のようにしてSSHでアクセスするとポートフォワーディングができます。

ssh サーバアドレス -L 3389:リモートデスクトップサーバアドレス:3389 -N

この時の注意点として、アクセス時には、SSHサーバにログインするためのユーザ名とパスワードを知っておく必要があります。

また、ポートフォワーディングとして転送するコンピュータの指定として、SSHサーバからのアドレスを指定します。

このようにすることで、リモートデスクトップの3389番ポートが手元のコンピュータに転送されるため、リモートデスクトップのクライアントから、localhost:3389というアドレスを指定してアクセスできるようになります。

さいごに

VPNは便利ですが、設定が面倒だったりうまくできない時の原因の調査が難しかったりします。

もし既にSSHの準備ができているという場合には、かなり楽に使えるのではないでしょうか。

参考にしてもらえれば幸いです。