ここではsshのバージョン2.0について説明しましょう。sshのプロトコルは図3に示すように3つの層からできています。下からトランスポート層プロトコル、ユーザー認証プロトコル、コネクションプロトコルという名前が付いています。
一番下にあるトランスポート層プロトコルは、(1)接続相手がニセモノではない本当のサーバであること、(2)データの暗号化、(3)データの一貫性の確保、さらにオプションで(4)データの圧縮をします。一言でいえば、正しいコンピュータとの間に、安全な通信路を用意する働きをしている、ということになります。
その上にある「ユーザー認証プロトコル」は、トランスポート層プロトコルの働きで作られた安全な通信路を使って、サーバにアクセスすることが許されているかどうかをチェックするための仕組みです。このチェックには、IDとパスワードを使う一番簡単な方法のほかに、より安全な方法(鍵情報が入ったファイルを持つ人だけアクセスできるなど)も用意されています。
このようにして安全な通信路を正当なユーザーが使っていることを確認できてから、いよいよ実際の通信機能を提供します。最も上に位置する「コネクションプロトコル」はそのためのプロトコルです。リモートコンソール機能、ポートフォワード機能など、このプロトコルで取り決められています。
図3を見るとsshプロトコルはTCP/IPの上に位置しています。しかし必ずTCP/IPと一緒に使わなければならないわけではありません。信頼性の高い通信路を作り出すプロトコルの上であれば、TCP/IPでなくてもsshは動作するといわれています。ただ一般の利用者がTCP/IP以外のネットワークでsshを使う機会はとても少ないでしょう。
これまでsshについての情報は決して多くなかったようですが、今年に入ってsshの仕様を細かく定めた文書が公開されました。RFCと呼ばれる英語の文書で、ハードルは非常に高いのですが、sshを詳細かつ正確に知るには不可欠の文書です。いま多く使われているssh 2.0と呼ばれるバージョンについて書かれています。
かなり上級者向けですが、興味がある方はちょっとのぞいてみるのもよいでしょう。希望的観測ですが、そのうち有志の手によって日本語訳が発表されるかもしれません。
Copyright © ITmedia, Inc. All Rights Reserved.