SSH ProxyCommand とホストベース認証:どちらのホストが署名するか
ホストベース認証が関わる場合に、踏み台経由で TCP ストリームを転送することと、そこで 2 台目の SSH クライアントを起動することを区別します。
ターゲットには踏み台から来る TCP 接続が見えますが、認証を行う SSH クライアントは依然としてワークステーション上で動作しています。
Host behind-bastion
ProxyCommand ssh -W %h:%p bastionここでは補助プログラムが踏み台にログインし、その SSH サーバーにターゲットへの転送接続を要求します。ワークステーション側の外側の SSH クライアントが、そのストリームを通じてターゲットの SSH プロトコルをやり取りします。踏み台は転送を提供するだけで、ターゲット向けの SSH クライアントを起動したわけではありません。
この区別はホストベース認証で重要です。OpenSSH の ssh-keysign 補助プログラムは、必要な署名を生成するためにローカルのホスト鍵にアクセスします。踏み台のネットワーク送信元アドレスであることは、ワークステーションが踏み台のホスト鍵で署名することを意味しません。
次と比較してください:
ssh -t bastion ssh targetこれは踏み台上で別の SSH プログラムを起動します。そのローカル設定と利用可能なホスト鍵はそのマシンに属するため、踏み台からターゲットへの既存のホストベース信頼関係に参加できます。ただしターゲット側の対応する許可と名前の確認は依然として必要です。
2 番目の形はセッションの仕組みも変えます。リモートコマンドを実行し、端末を使います。あらゆる SSH ファイル転送や自動化の転送に対する透過的な代替ではありません。送信元アドレスが十分に見えるようにサーバーの信頼確認を弱めるのではなく、どのマシンがターゲットに対して認証すべきかに応じて構成を選んでください。