SSHエージェントフォワーディング設定
ローカル鍵をリモートサーバーで使用するためのSSHエージェントフォワーディングの設定。ForwardAgentの使用タイミング、セキュリティ上の注意点、より安全な代替手段を解説します。
Authentication
詳細な説明
SSHエージェントフォワーディング
エージェントフォワーディングを使うと、秘密鍵をコピーせずにリモートサーバー上でローカルのSSH鍵を使用できます。
設定例
Host dev-server
HostName dev.example.com
User developer
ForwardAgent yes
IdentityFile ~/.ssh/id_ed25519
AddKeysToAgent yes
動作の仕組み
- エージェントフォワーディングを有効にしてリモートサーバーに接続
- リモートサーバーがローカルのssh-agentにリクエストを送信可能に
- ローカルエージェントが秘密鍵を公開せずに鍵操作を処理
- 秘密鍵はローカルマシンから離れることがない
セキュリティ上の考慮事項
エージェントフォワーディングにはリスクがあります。リモートサーバーのroot権限を持つ人が、フォワーディングされたエージェントを使って他のサーバーに認証できてしまいます。
- 信頼できるサーバーに対してのみForwardAgentを有効にする
- *グローバル(Host ブロック)では絶対に有効にしない
- 代わりに
ProxyJumpの使用を検討する
より安全な代替手段:ProxyJump
Host target
HostName 10.0.1.50
User deploy
ProxyJump bastion
ユースケース
リモートSSHセッション内からGitリポジトリやその他のSSH保護リソースにアクセスする必要があり、秘密鍵をリモートサーバーにコピーしたくない開発者。