萌えハッカーニュースリーダー

2025/04/14 12:04 SSH Keys Don't Scale. SSH Certificates Do

出典: https://infisical.com/blog/ssh-keys-dont-scale
hakase
博士

ロボ子、今日のITニュースはSSH証明書認証についてじゃ。

roboko
ロボ子

SSH証明書認証ですか。従来のSSH公開鍵認証とどう違うんですか?

hakase
博士

公開鍵認証は、鍵の管理が大変になるのじゃ。ユーザーやホストが増えると、鍵の生成、配布、管理が手に負えなくなるぞ。まるでスパゲッティコードじゃ!

roboko
ロボ子

確かに、鍵がインフラ全体に散らばると、誰がどのホストにアクセスできるのか分からなくなりますね。

hakase
博士

そうじゃろう?そこでSSH証明書認証の出番じゃ!これは、有効期間の短い暗号署名付きドキュメントを使うのじゃ。

roboko
ロボ子

有効期間が短いということは、セキュリティも高まりますね。

hakase
博士

その通り!認証局(CA)がユーザーとホストの公開鍵に署名して、証明書を発行するから、集中管理ができるのじゃ。

roboko
ロボ子

個々のユーザー鍵をすべてのサーバーに配置する代わりに、ホストがユーザーのCAを信頼するように構成するんですね。

hakase
博士

そうじゃ!証明書には有効期限とID情報が含まれておるから、いつでも失効または再発行できる。柔軟性も高いのじゃ。

roboko
ロボ子

具体的な仕組みはどうなっているんですか?

hakase
博士

まず、SSH鍵ペアを使うのじゃ。一部をCAとして指定し、他の鍵ペアをユーザーとホストが生成して証明書を受け取る。

roboko
ロボ子

ユーザー証明書を発行するCAとホスト証明書に署名するCAの2つを設定するんですね。

hakase
博士

その通り!ユーザーはホストに発行された証明書を信頼するように、ホストはユーザーに発行された証明書を信頼するように設定するのじゃ。

roboko
ロボ子

ユーザーがホストにアクセスする際の流れも教えてください。

hakase
博士

ユーザーはまず、CAに承認されたリクエストを送信して証明書を取得する。CAはユーザーのIDを確認し、プリンシパルを含む証明書を発行するのじゃ。

roboko
ロボ子

プリンシパルというのは、ユーザー名やロール、グループ名などのIDのことですね。

hakase
博士

そうじゃ!その後、ユーザーはSSH接続を開始する。ホストは証明書が信頼できるCAによって署名されているかを確認し、authorized_principalsファイルを検索して、プリンシパルがログインできるかを確認するのじゃ。

roboko
ロボ子

ユーザーのマシンも、known_hostsファイルに保存されている信頼できるホストCAに対してホストのSSH証明書を確認するんですね。

hakase
博士

両方のチェックが成功すれば、アクセスが許可されるというわけじゃ!

roboko
ロボ子

Infisical SSHというプラットフォームもあるんですね。これは何をするものですか?

hakase
博士

Infisical SSHは、SSH証明書ベースのアクセスを可能にするコントロールプレーンを提供するのじゃ。CAの実行から証明書の発行、信頼の構成まで、必要な運用上の複雑さを抽象化してくれる。

roboko
ロボ子

セットアップが簡単になるのは良いですね。ユーザーとホストを登録して、アクセス権を指定するだけなんですね。

hakase
博士

そうじゃ!Meta、Uber、Googleなどの企業では、既に標準的な慣行になっているらしいぞ。

roboko
ロボ子

スケーラビリティ、セキュリティ、管理のしやすさを考えると、SSH証明書認証に切り替える価値はありそうですね。

hakase
博士

まさに!SSH鍵はスケーリングしないが、SSH証明書はスケーリングするのじゃ!…ところでロボ子、今日の夕食はステーキじゃぞ!

roboko
ロボ子

博士、またですか。冗談はさておき、勉強になりました。ありがとうございます!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search