sshで複数の秘密鍵がある場合、クライアントからはどの秘密鍵が使われたかわからない
authorized_keysでの実行可能なコマンドの制限を試すため、すでにエージェント転送で接続できるサーバに、別の公開鍵を追加した。
その上で ssh -i ...
で新しく追加した鍵で接続してみたのだが、コマンドの制限が効いていない。
-vvv
とつけて詳細なログを吐かせても、ちゃんと-i
で指定した秘密鍵を使っている……ように見える。
といった感じではまっていろいろ試行錯誤した結果、以下のことがわかった。
ということで、以下のようにすれば解決。
ssh -o 'IdentitiesOnly yes' -i /path/to/private_key ...
なお今回は接続先サーバのroot権限がなかったからクラアイント側から調査したが、権限があれば多分ログ見ればさすがにわかりそう。