SSH(Secure Shell)は,インターネットなどのネットワークを経由して遠隔地のコンピューターを安全に操作するためのプロトコルであり,基本情報技術者試験をはじめとする情報処理技術者試験で重要となる技術の一つです。サーバー管理やネットワーク運用では,遠隔地のコンピューターにログインして操作する場面が多くありますが,その通信内容が暗号化されていないと,パスワードや操作内容が盗聴される危険があります。SSHは,このような問題を解決するために,暗号化や認証のしくみを利用して安全に遠隔操作を行えるようにしたプロトコルです。SSHがどのようなしくみで安全な通信を実現しているのか理解できていますか?
SSH=暗号化と認証を利用して遠隔地のコンピューターを安全に操作するためのプロトコル
このページでは,SSHについてシンプルにまとめています。SSHの概要,トランスポート層プロトコル,認証プロトコル(パスワード認証,ホストベース認証,公開鍵認証),コネクションプロトコル(ログインセッション,コマンド実行,ポートフォワーディング)を解説します。繰り返し確認して,確実に理解しましょう。
SSH(Secure Shell)とは(安全なリモート操作プロトコル)
SSHは,遠隔地のコンピューターを,ネットワーク経由で遠隔操作するためのプロトコルです。暗号や認証技術を利用でき,安全性が確保されています。
※ SSHはアプリケーション層(OSI基本参照モデル)のプロトコルである
※ TCPのポート番号22を使用する
※ telnetやFTPなど,暗号化のしくみのないプロトコルに置き換わる,安全なプロトコルとして普及している
SSHのプロトコル構成(層と役割)
SSHトランスポート層プロトコルとは(暗号化と鍵交換)
SSHトランスポート層プロトコルは,下位に位置するプロトコルで,接続先の確認や,データの暗号化,データの圧縮(オプション)などを行います。
※ 通信で用いるセッション鍵(共通鍵)などを生成する
SSH認証プロトコルとは(接続先とユーザーの認証)
SSH認証プロトコルは,中間に位置するプロトコルで,SSHトランスポート層プロトコルで作成された安全な通信路を使用して,クライアントの認証を行います。認証方式には,次のようなものがあります。
パスワード認証とは(基本的なユーザー認証)
ユーザーIDとパスワードで,クライアントを認証する方式。パスワードは暗号化されるため,安全
ホストベース認証とは(信頼ホストによるログイン)
サーバー側に信頼できるホストの名前を登録しておき,登録されているホストからの接続要求については,パスワードなどを要求することなくクライアントを認証する方式
公開鍵認証とは(公開鍵/秘密鍵による安全認証)
クライアントの認証に,公開鍵を用いる方式
※ クライアントは,事前に,自身の公開鍵をSSHサーバーに渡し,SSHサーバーは,それを検証する
※ ディジタル署名については,「認証の基礎まとめ(ディジタル署名とは)」を参照
SSHコネクション(接続)プロトコルとは(セッションと操作)
SSHコネクション(接続)プロトコルは,上位に位置するプロトコルで,SSHコネクションを確立します。次のような機能を提供します。
- ログインセッションの実行
- コマンド(遠隔操作)の実行
- ポートフォワーディング
ポートフォワーディングとは(安全なトンネル転送)
ポートフォワーディングとは,SSHで確立した暗号化通信路(トンネル)を利用して,他のポートへの通信を転送する機能のことをいいます。この機能を利用することにより,他のアプリケーションにデータを転送することができます。
まとめ
今回は,ネットワーク経由で遠隔地のコンピューターを安全に操作するためのプロトコルであるSSHについてシンプルにまとめてみました。SSHは,通信の暗号化や利用者認証を行うことにより,安全なリモート操作を実現するプロトコルです。SSHのしくみや認証方式,ポートフォワーディングの役割を理解することは,ネットワークや情報セキュリティの基礎を理解するうえで重要です。
理解が進んだら,基本情報技術者試験の過去問題等にもチャレンジしてみてください。


