第 21章SSH(Secure SHell)サーバー

21.1. OpenSSH の概要

SSH(Secure Shell)とは、セキュリティを強化したリモートログイン方式です。従来より利用されてきた rsh や telnet は、ログインする際のユーザー名やパスワードを含むすべてのデータを暗号化せずに平文でネットワーク上に流すため、盗聴、改竄といったセキュリティ上の危険性があります。それに対し、SSH はパスワードを含むすべてのデータを暗号化してやり取りしますので、安全なリモート操作が可能です。ただし、SSH 自体にセキュリティホールが発見された場合はこの限りではありませんので、その際には、ソフトウェアのアップデートを行うなど、迅速な対応が必要です。SSH は、公開鍵方式と共通鍵方式の仕組みを利用して暗号化通信を実現していますが、その際に使用する公開鍵の交換方式やプロトコル仕様の違いにより SSH v1(バージョン 1)と SSH v2(バージョン 2)の 2 つの異なるバージョンが存在します。SSH v1 は、鍵の暗号化アルゴリズムに RSA(R. Rivest、A. Shamir、L. Adelman:開発者 3 名の頭文字から命名されています)を使用していましたが、RSA は米国による特許が取得されていたため、この特許権やライセンス問題を避けるために SSH v2 を開発したという経緯があります。SSH v2 では、DSA(Digital Signature Algorithm)という暗号化方式を採用しています。現在では、RSA の特許権の問題はクリアされていますので、SSH を実装したソフトウェアには、どちらのバージョンもサポートしているものが存在します。Turbolinux 11 Server が採用している OpenSSH も、両方のバージョンに対応していますが、SSH プロトコルを実装したソフトウェアの中には、SSH v1 しかサポートしていないものもあります。例えば、Windows 用の SSH クライアントとして有名な TTSSH は SSH v1 のみをサポートしています。

注意

SSH v1 には、仕様上のセキュリティホールが発見されているため、現在では SSH v2 の使用が推奨されています。