SSHエージェントフォワーディング設定

ローカル鍵をリモートサーバーで使用するためのSSHエージェントフォワーディングの設定。ForwardAgentの使用タイミング、セキュリティ上の注意点、より安全な代替手段を解説します。

Authentication

詳細な説明

SSHエージェントフォワーディング

エージェントフォワーディングを使うと、秘密鍵をコピーせずにリモートサーバー上でローカルのSSH鍵を使用できます。

設定例

Host dev-server
  HostName dev.example.com
  User developer
  ForwardAgent yes
  IdentityFile ~/.ssh/id_ed25519
  AddKeysToAgent yes

動作の仕組み

  1. エージェントフォワーディングを有効にしてリモートサーバーに接続
  2. リモートサーバーがローカルのssh-agentにリクエストを送信可能に
  3. ローカルエージェントが秘密鍵を公開せずに鍵操作を処理
  4. 秘密鍵はローカルマシンから離れることがない

セキュリティ上の考慮事項

エージェントフォワーディングにはリスクがあります。リモートサーバーのroot権限を持つ人が、フォワーディングされたエージェントを使って他のサーバーに認証できてしまいます。

  • 信頼できるサーバーに対してのみForwardAgentを有効にする
  • *グローバル(Host ブロック)では絶対に有効にしない
  • 代わりにProxyJumpの使用を検討する

より安全な代替手段:ProxyJump

Host target
  HostName 10.0.1.50
  User deploy
  ProxyJump bastion

ユースケース

リモートSSHセッション内からGitリポジトリやその他のSSH保護リソースにアクセスする必要があり、秘密鍵をリモートサーバーにコピーしたくない開発者。

試してみる — SSH Config Generator

フルツールを開く