全1482文字
PR

 SSH(Secure Shell)は通信プロトコルの一種。認証や暗号化の仕組みを使い、ネットワークに接続されたサーバーなどと安全に通信できるようにする。例えば遠隔地のサーバーにログインしてコマンドを実行するといったことが可能だ。SSHにはバージョン1のSSH1とバージョン2のSSH2の2つがある。現在はSSH2を使用するのが一般的である。

 SSHが登場する前は、ネットワーク経由でのサーバーのログインなどにはTelnetと呼ばれるプロトコルを使用していた。しかしTelnetは通信を暗号化しないので盗聴される危険性がある。このため安全性が課題となっていた。そこで通信を暗号化するSSHがTelnetに代わって使われるようになった。

 ただしSSHを利用するには専用のソフトウエアが必要だ。オープンソースソフトウエア(OSS)として開発が進められている「OpenSSH」などが著名である。またWindows 10に備わっているPowerShellは、機能追加によってSSHのクライアントソフトとして利用できる。こうしたソフトウエアをパソコンとサーバーにインストールし、SSHによる通信を実現する。

公開鍵認証で安全性を向上

 SSHを使って遠隔地のサーバーなどにログインする際、正規のユーザーであることを認証する必要がある。SSHは複数の認証方法を用意している。代表的なのがパスワード認証と公開鍵認証である。一般に安全性が高いのは公開鍵認証だ。

 パスワード認証は文字通りパスワードを使う認証方法である。鍵となるパスワードを通信元と通信相手で事前に共有する。そして認証時に通信元から通信相手にパスワードを送信。通信相手は共有されているパスワードと照合して正規のユーザーかどうかを確認する。認証時には通信が暗号化されているためパスワードを盗聴される恐れはないが、悪意のあるサーバーなどにパスワードを誤って送信する危険性がある。

 公開鍵認証は通信元が秘密鍵と公開鍵を持ち、通信相手には公開鍵だけを渡す(PICT1)。通信元は秘密鍵で署名を施したデータを送信。通信相手は公開鍵を使ってそのデータを検証し、通信元が正規のユーザーかどうかを確認する。

PICT1●公開鍵認証を使って安全な通信を実現する
PICT1●公開鍵認証を使って安全な通信を実現する
(イラスト:なかがわ みさこ)
[画像のクリックで拡大表示]

 パスワード認証では、パスワードを推測されたり盗まれたりすると第三者に容易になりすまされてしまう。一方、公開鍵認証では認証に必要な秘密鍵は推測不能なので、パソコンやサーバーなどに保存している秘密鍵を盗まない限りなりすましは困難だ。