前回「サーバ管理をコマンドプロンプトでするのはなぜ?」では、安全なネットワーク越しのリモートサーバ管理をするためにsshが使われる理由を説明しました。今回は、sshの3大機能、その仕組みと働き、利用するアプリケーションなど、サーバ管理通信の暗号化を説明します。
図1はtelnetとsshの暗号化の有無の違いを表したものです。telnetがまったく暗号化をしないのに比べて、sshではsshサーバ(接続を受け付ける側)とsshクライアント(接続を開始する側)との間の通信を暗号化しています。そのため途中にインターネットのような安全でないネットワークがあっても、安全に管理作業を行うことができます。
sshには大きく3つの機能があります。1つはここまで触れてきた「ネットワークを通してほかのコンピュータのコマンド処理プログラムを利用する」機能です。一般にこれを「リモートコンソール機能」といいます。
また似た機能として「ネットワークを通して、ほかのコンピュータ上でプログラムを実行する」機能も備えています。プログラムとしてのsshには、この機能を利用して安全にファイルを転送する機能も備わっています。これは2つ目の機能です。
3つ目は「ポートフォワーディング」と呼ばれるもので、コマンド処理プログラム以外にもsshの暗号化通信機能を使えるようにする機能です。
図2を見てください。上半分はメールを読み出すためにpop3を使ってメールサーバにアクセスしている様子を表しています。以前にも触れた(参照記事:連載第4回 TCP/IPアレルギー撲滅ドリル【超実践編】 ちょっとジミなPOP3でメールを読む「パスワードがばれちゃう?」)と思いますが、pop3は暗号化の機能を持っていませんので、このときのやりとりは、パスワードも含めそのままインターネットを流れてしまいます。これはちょっと危険です。
ここで登場するのがsshのポートフォワーディングです。その働きを一言でいえば「sshサーバとsshクライアントの間の安全な通信路を、ほかのプログラムにも使わせてあげる」ものです。図の下半分はその様子を表しています。
sshクライアントは、まずpop3クライアントからの接続要求を受け取り、それを安全な通信路に乗せます。こうして送り出した情報は、次にsshサーバが受け取り、さらにそれをpop3サーバに転送します。
この一連の動作によりpop3の接続要求はpop3サーバにうまく届きますし、途中はsshクライアントとsshサーバが作り出した安全な通信路を通るので、のぞき見される心配もなくなります。それ単独では安全でないプロトコルも、sshのポートフォワーディング機能と組み合わせれば、安全に通信できるというわけです。
なおpop3は1つの例であって、これ以外の多くのプロトコルでもポートフォワーディング機能を利用できます。
図1から読み取れるとおり、sshを使うにはsshサーバとsshクライアントが必要です。このうちsshサーバについては、このページの範囲を超えているので詳しくは触れませんが、フリーで配布されているOpenSSHや、商品として販売されているものなどがあります。OpenSSHはLinuxなどに標準で組み込まれています。またWindows版もあります。
sshサーバに接続するためのクライアントソフトとしては、TeraTerm、PuTTYといったリモートコンソール機能中心のソフトや、ファイル転送専用のWinSCPなどがあります。
←前回「サーバ管理をコマンドプロンプトでするのはなぜ?」へ
Copyright © ITmedia, Inc. All Rights Reserved.