SSH Identity Fileの管理

複数のSSH Identity Fileを管理するベストプラクティス。鍵の生成、ファイルパーミッション、IdentitiesOnly、サービスごとの鍵の整理方法を解説します。

Authentication

詳細な説明

SSH Identity Fileの管理

接続するサーバーやサービスが増えるにつれ、SSH鍵の管理がますます重要になります。

推奨される鍵の命名規則

~/.ssh/
  id_ed25519_github
  id_ed25519_work
  id_ed25519_aws
  config

複数Identity Fileの設定

Host github.com
  IdentityFile ~/.ssh/id_ed25519_github
  IdentitiesOnly yes

Host *.internal.company.com
  IdentityFile ~/.ssh/id_ed25519_work
  IdentitiesOnly yes

Host *
  AddKeysToAgent yes
  IdentityFile ~/.ssh/id_ed25519

IdentitiesOnlyの重要性

IdentitiesOnly yesがないと、SSHはエージェントに読み込まれたすべての鍵をサーバーに送信します。サーバーは失敗した鍵の試行回数が多すぎると接続を拒否する可能性があります。

ファイルパーミッション

パス パーミッション コマンド
~/.ssh/ 700 chmod 700 ~/.ssh
秘密鍵 600 chmod 600 ~/.ssh/id_*
公開鍵 644 chmod 644 ~/.ssh/*.pub
config 600 chmod 600 ~/.ssh/config

ユースケース

複数のサーバー、クラウドインスタンス、Gitホスティングサービスへのアクセスを、それぞれ別のSSH鍵で管理するシステム管理者や開発者。

試してみる — SSH Config Generator

フルツールを開く