SSH エージェント転送
SSH エージェント転送 とは何ですか?
SSH エージェント転送OpenSSH の機能で、-A や ForwardAgent yes で有効化すると、リモートホストに UNIX ソケットを公開し、そこからローカルの SSH エージェントを使って次のホストへ認証できる。
SSH エージェント転送を使えば、ローカルで ssh-agent を起動し、秘密鍵をコピーせずにサーバを次々と踏み台越しに渡ることができます。ForwardAgent yes で接続すると、openssh はリモートホストに UNIX ドメインソケット(パスは SSH_AUTH_SOCK)を作成し、署名要求をローカルエージェントに転送します。リスクとして、そのリモートホスト上で root を取れる者は誰でもこのソケットを乗っ取り、ユーザの代わりに任意の到達可能なターゲットに対して署名要求を行えます。matrix.org の 2019 年事件や GitHub.com のサプライチェーン警告などを経て、可能であれば ProxyJump(-J)、短い TTL の SSH 証明書、ハードウェア鍵(FIDO ed25519-sk)を使い、転送が不可避な場合は IdentityAgent や ssh-agent の確認プロンプトを設定することが推奨されています。
● 例
- 01
踏み台で root を持つ攻撃者が SSH_AUTH_SOCK を使い、本番サーバへの認証署名をユーザになりすまして行う。
- 02
ssh -A admin@jump の代わりに ssh -J jump admin@target を使い、秘密鍵を踏み台に渡さない。
● よくある質問
SSH エージェント転送 とは何ですか?
OpenSSH の機能で、-A や ForwardAgent yes で有効化すると、リモートホストに UNIX ソケットを公開し、そこからローカルの SSH エージェントを使って次のホストへ認証できる。 サイバーセキュリティの ネットワークセキュリティ カテゴリに属します。
SSH エージェント転送 とはどういう意味ですか?
OpenSSH の機能で、-A や ForwardAgent yes で有効化すると、リモートホストに UNIX ソケットを公開し、そこからローカルの SSH エージェントを使って次のホストへ認証できる。
SSH エージェント転送 からどのように防御しますか?
SSH エージェント転送 に対する防御は通常、上記の定義で述べたとおり、技術的統制と運用上の実践を組み合わせます。
SSH エージェント転送 の別名は何ですか?
一般的な別名: ForwardAgent, ssh -A。