「Secure Shell」(セキュア・シェル)とは
SSHの説明
SSHとは、Secure Shell(セキュアシェル)の略称で、リモートコンピュータと通信するための
プロトコルです。
認証部分を含めネットワーク上の通信がすべて暗号化されるため、安全に通信することができます。
公開鍵暗号の鍵ペアを生成して公開鍵をサーバに預ける。サーバ側にも導入時に固有の鍵ペアが生成されており、接続を希望するクライアントに公開鍵を渡しておく。
接続時にはまずクライアントが持つサーバの公開鍵を用いて、接続先のサーバがなりすましの偽物でないかを検証する(ホスト認証/サーバ認証)。本物と確認されたらDiffie-Hellman鍵交換などを用いて通信の暗号化に用いる共通鍵暗号の暗号鍵を共有し、伝送経路の暗号化を開始する。
パスワード認証を選択した場合には、暗号化された伝送経路を用いてパスワードを送信して利用者本人であることを確かめる。公開鍵認証を選択した場合には、クライアントが自らの秘密鍵で電子署名を生成してサーバに送付し、サーバは利用者の公開鍵で検証して本人かどうか確かめる。
公開鍵認証方式はパスワード認証のようにサーバに保管したパスワードの管理が杜撰で漏洩してしまったり、他のシステムと同じものを使い回してそちらから漏れるといった危険が無いため、利用可能であれば公開鍵認証を使うことが推奨される。
たとえを使って説明
あなたは友達と手紙をやりとりしたいと思っています。しかし、その手紙には大切な情報が書かれてい
るので、他の人に読まれてしまうと困ります。そこで、あなたは手紙を書くときに暗号を使うことにし
ました。
SSHは、手紙を書くための暗号のようなものです。それは、手紙の中身を他の人に見られないように保
護します。具体的には、SSHは手紙を送るときに暗号化と呼ばれる特別な手順を使います。
まず、あなたが手紙を送ると、友達(サーバー)は手紙の内容をあなたと友達しか知らない
鍵(公開鍵)で暗号化して、手紙を封筒に入れます。
これにより、他の人が手紙の中身を読むことができなくなります。次に、友達の手紙を見るための
鍵(秘密鍵)を作ります。この鍵(秘密鍵)は、手紙を読むために必要な鍵です。
あなたの友達(サーバー)は、あなたから手紙を受け取るためにあなたと友達(サーバー)しか知らな
い鍵(公開鍵)で暗号文を作ります。
手紙が届いたとき、あなたは友達(サーバー)からの暗号文を友達の手紙を見るための鍵(秘密鍵)
で読み手紙のやり取りを続けます。
コメント