特定のホストに対してsshパスフレーズで保護されたIDファイルの有効性をテストしたいと思います。パスフレーズを実際に提供したくないし、必ずしもそれを知っている必要もありません。IDファイル自体が問題のリモートホストにもまったく適用できないことを確認するだけです。
次の例を検討してください。
ssh -i .ssh/right-key.pem user@some_Host
Enter passphrase for key '.ssh/right-key.pem':
ssh -i .ssh/wrong-key.pem user@some_Host
Permission denied (publickey).
有効なキーを使用すると、パスフレーズの入力を求められます。無効なキーを使用すると、プロンプトは表示されませんが、すぐにエラーが返されます。 sshは、これらのキーの1つが適用され、もう1つは適用されないことを知っています。このテストを実行する簡単な方法が必要です。
どうすればよいですか?ありがとうございました!
これはおそらく最もエレガントではない解決策ですが、それは私が当分の間理解できたものです
ssh -v -o batchmode=yes -i .ssh/right-key.pem user@some_Host 2>&1 | grep 'Server accepts key'
wrong-key.pem
で同じことを行うと、grepミスが発生するため、エラーステータスが返されます。
誰かがそれらを持っているなら、私はより良い答えを歓迎します。