プロトコル補足

SSH(Secure Shell) えすえすえいち

リモートログイン暗号化通信公開鍵認証ポートフォワーディングTelnetサーバー管理
SSHについて教えて

簡単に言うとこんな感じ!

SSHは「離れたサーバーに安全に接続するための仕組み」だよ。鍵のかかった専用トンネルをネット上に掘って、その中でコマンド操作やファイル転送をする感じ!盗み見も改ざんもできないから、サーバー管理の定番手段なんだ。


SSHとは

SSH(Secure Shell) は、ネットワーク越しに別のコンピューターへ安全にログインし、操作するためのプロトコル(通信規約)です。インターネットのような信頼できないネットワークを経由しても、通信内容を暗号化することで盗聴・改ざんを防ぎます。

SSHが登場する前は Telnet というプロトコルが使われていましたが、Telnetは通信内容が平文(暗号化なし)のため、パスワードを含むすべての操作がネット上で丸見えでした。SSHはこの問題を解決するために1995年に設計され、現在では世界中のサーバー管理の標準手段として定着しています。

実務では「クラウド上のサーバーにアクセスして設定を変更する」「ファイルを安全に転送する」「リモートでバッチ処理を実行する」といった場面で日常的に使われます。情シスやエンジニアがサーバーを操作するとき、ほぼ確実にSSHを使っていると思ってください。


SSHの仕組みと構成要素

SSHの通信は大きく「認証」と「暗号化されたセッション」の2段階で成り立っています。

フェーズ内容
① 接続確立クライアントがサーバーのTCPポート22番に接続を要求
② サーバー認証サーバーは自分のホスト公開鍵を提示し、クライアントが本物か確認
③ 暗号化ネゴシエーション使用する暗号アルゴリズムを双方で合意
④ ユーザー認証パスワードまたは公開鍵認証でユーザーを確認
⑤ セッション開始暗号化されたトンネル上でコマンド実行・ファイル転送などが可能に

認証方式:パスワード認証 vs 公開鍵認証

SSHのユーザー認証には主に2つの方式があります。

方式仕組みセキュリティ利便性
パスワード認証IDとパスワードで認証△(総当たり攻撃のリスクあり)
公開鍵認証「秘密鍵(手元に保管)」と「公開鍵(サーバーに登録)」のペアで認証◎(鍵がなければ侵入不可)

セキュリティを重視する場合は公開鍵認証が推奨されます。玄関の鍵と錠のように、サーバー側には錠(公開鍵)だけを置き、本物の鍵(秘密鍵)は自分のPCから絶対に出さない運用です。

覚え方:「SSHは暗号トンネル」

🔑 Secure(安全な)Shell(シェル操作)=「鍵のかかったトンネルで操作する」

「Secure = 鍵付き」「Shell = サーバーのコマンド画面」と分解すると覚えやすいです。


歴史と背景

  • 1995年 — フィンランドのタトゥ・ウルネン(Tatu Ylönen)がTelnetの盗聴被害を受けたことをきっかけにSSH-1を開発・公開
  • 1996年 — SSH-2(SSH プロトコルバージョン2)が設計される。セキュリティと機能が大幅に向上
  • 1999年 — オープンソース実装 OpenSSHリリース。BSD/Linux系OSに標準搭載され急速に普及
  • 2006年 — IETF(インターネット技術標準化機関)がSSH-2を正式にRFC 4251〜4254として標準化
  • 2010年代〜 — クラウドサービス(AWS・GCPなど)の普及とともに、サーバー管理の入口として事実上の必須プロトコルに
  • 現在 — パスワード認証を無効化し公開鍵認証のみにする運用が業界標準となっている

SSHとTelnetの比較・関連技術

SSHが解決した最大の課題は「Telnetの平文通信」です。視覚的に対比すると以下の通りです。

Telnet vs SSH — 通信の安全性の違い Telnet(旧来方式) SSH(現在の標準) クライアント(PC) クライアント(PC) 平文データがそのまま流れる ⚠ 盗聴・改ざんが可能 暗号化されたトンネル ✅ 盗聴・改ざん不可 🌐 ネットワーク(丸見え) 🌐 ネットワーク(暗号化済) サーバー サーバー ポート: 23 / 暗号化: なし ポート: 22 / 暗号化: あり

SSHの主な用途・機能

機能説明代表的な使い方
リモートログインサーバーのコマンドラインを遠隔操作ssh user@サーバーIP
SCP / SFTPSSH上でのファイル転送サーバーへのファイルアップロード
ポートフォワーディングSSHトンネルを使った通信の中継社内システムへの安全な接続
SSHトンネリング暗号化されていないプロトコルをSSH経由で保護データベース接続の安全化

関連プロトコル・ツール早見表

名前種別用途
OpenSSHソフトウェア最も普及したSSH実装(Linux/Mac標準搭載)
PuTTYソフトウェアWindows向けSSHクライアント
SFTPプロトコルSSH上で動くファイル転送プロトコル
SCPコマンドSSH経由でのファイルコピー
TelnetプロトコルSSHの前身。平文通信のため現在は非推奨

関連する規格・RFC

規格・RFC番号内容
RFC 4251SSHプロトコルアーキテクチャ全体の定義
RFC 4252SSH認証プロトコルの仕様
RFC 4253SSHトランスポート層プロトコルの仕様(暗号化・鍵交換
RFC 4254SSHコネクションプロトコル(チャンネル多重化)
RFC 4716SSH公開鍵ファイルのフォーマット定義

関連用語

  • Telnet — SSHの前身となった平文リモートログインプロトコル
  • 公開鍵暗号 — SSHの認証基盤となる暗号方式
  • VPN — ネットワーク全体を暗号化トンネルで保護する仕組み
  • ファイアウォール — SSHのポート22番を制御する境界セキュリティ
  • クラウドサーバー — SSHでのアクセスが標準的な管理手段となる対象