エム・クレストの副社長兼エンジニアである小澤一裕です。情報システム部門に配属された新入社員やリスキリングで改めてICT(情報通信技術)に取り組もうという方々に向けて、知っていると便利なICTに関するTIPSをお届けしようと考えました。
コロナ禍でテレワークが急速に普及し、リモート接続をする機会が増えています。また、システムもデータセンターで管理したり、クラウドサービスを利用したりすることが主流になっていますので、その意味でもリモート接続で開発・保守作業する機会が多くなっているのではないでしょうか。そこで数回にわたり、リモート接続の初歩や知っていると便利なTIPSを紹介します。今回は、「SSHの便利な使い方」というテーマで、ポートフォワードとファイル転送を紹介します。
SSHとは?
SSHポートフォワードの説明に入る前に、念のためSSHについて説明しておきましょう。よく知っているという方は読み飛ばしてください。
SSHは「Secure Shell」の略で、他のコンピューターと安全にリモート接続するためのプロトコル(通信規約)です。以前は、telnet(端末)やftp(ファイル転送)というプロトコルがリモート接続で使用されていましたが、これらは暗号化されていないデータ(平文データ)でやりとりしていたので、盗聴される危険がありました。IDやパスワードも平文でネットワーク上に流れるため、システムを乗っ取られる危険さえあったのです。一方で、SSHはパスワード認証よりも安全と言われる公開鍵暗号方式による認証を備えており、また、暗号化されたデータでやりとりするので安心です。そのため、現在では当たり前のようにSSHを利用するシーンが多くなっています。
Windows環境でSSHを利用して他のコンピューターに接続する場合には、コマンドプロンプトかPowerShellからSSHコマンド(ssh.exe)を起動して使うこともできますが、「TeraTerm」や「PuTTY」などのSSHクライアント機能を持つGUIアプリを使うケースが多いと思います。また、Linuxでは主にターミナルからSSHコマンドを使用します。
SSHポートフォワードとは?
SSHを普段から使っている方でも、SSHポートフォワード(ポートフォワーディングとも言う)をご存じないという方がいるかもしれません。そうであれば、これは知っておくと本当に便利で、業務の幅が広がるような機能ですから、ぜひ覚えてください。
まず、ポートとは、「TCPポート番号」のことで、これはTCP/IPを利用するサービスを識別するための番号です。例ば、メールのプロトコルであるSMTPであれば「25」、ウェブのプロトコルであるhttpならば「80」といった具合に割り当てられています。詳しくはこちらをご覧ください。
続いて、「ポートフォワード」とは、特定のポートに送られてきたデータを他のポートに転送することを言います。SSHポートフォワードとは、SSH接続上でのポートフォワードのことです。つまり、SSH上の通信を特定のポートへ転送する機能のことです。これはSSHにデフォルトで備わっている機能です。SSHでは、あるポートの通信を他のサーバーのポートに転送することができ、異なるサーバー間でセキュリティやネットワーク設定によって直接アクセスができないときに威力を発揮します。