10.1. SSHの仕組み

SSHとは前述の通り、セキュアシェル(SecureSHell)の略です。シェル(Shell)とはユーザが入力したコマンド等を解釈し、対応した機能を実行するようOSに指示を伝えるソフトウェアです。

SSHはサーバコンピュータが目的どおり動くよう(離れた場所から)設定を編集、プログラムの開始や停止をするために、サーバコンピュータの中に入るための、サーバ管理の必須ツールです。SSHを使えばネットワークを介して、離れた場所のサーバコンピュータにログインすることができるので、離れた場所からCUIでコマンドを実行することができます。SSHの認証機構にはいくつかの方法が存在します。

  • 共通鍵方式
    共通鍵方式は、クライアントとサーバがお互い同じ鍵を使用して暗号化と復号化を行います。共通鍵方式では、お互いに同じ共通鍵を持っていなければ解読することはできません。また、共通鍵はCPUパワーをあまり使わずに強い暗号強度を得ることができます。
    しかし、共通鍵方式は、1つの鍵で暗号化と復号化を行うため、ネットワークにそのまま流してしまうと、鍵が第3者にわたって通信データを盗聴されてしまう危険があります。
  • 公開鍵方式
    公開鍵暗号では「暗号化用の鍵」と「復号用の鍵」のふたつの鍵を使います。暗号化用の鍵で暗号化したデータは、復号用の鍵を使わないと復号できません。暗号化用の鍵だけでは暗号化はできても復号はできません。さらに、復号用の鍵から暗号化用の鍵を推測することも極めて難しいようになっています。このような性質があるので、データの送り主に暗号化用の鍵だけを渡してやれば、自分以外の誰にも復号できないように暗号化できます。暗号化されたデータは、送り主ですら復号することができません。

一般的には「暗号化用の鍵」のことを「公開鍵」、「復号用の鍵」のことを「秘密鍵」と呼びます。データの暗号化や復号にとても時間がかかります。大量のデータ通信に使うには実用的ではありません。そのため、 sshは公開鍵暗号を使ってデータ通信で使うための共通鍵を送信し、実際のデータ通信は秘密鍵暗号を使って通信しています。つまり、公開鍵暗号が使われるのは一番最初だけです。これは sshを理解するうえでの重要なポイントなので、覚えておいてください。

共通鍵暗号方式と公開鍵暗号方式

https://www.verisign.co.jp/basic/pki/cipher/index_3.htmlより転載