12

ssh が公開鍵を使用して認証できるかどうかをプログラムでテストする方法はありますか? 私はこのようなことをしたいと思います(できればbashで、しかしpythonソリューションを受け入れています):

ssh-test-thingy user@host || echo "could not authenticate using publickey"

リモートホストで公開鍵が一致しない場合ssh-test-thingy、ゼロ以外の終了ステータスを返します。

4

1 に答える 1

18

オプション-o BatchMode=yesを ssh に渡し、それが機能するかどうかを確認します。これにより、パスワードの入力を求めるプロンプトが無効になります。これは、実際には、キーによる認証が可能かどうかを知りたいというあなたの欲求と同等だと思います。 ssh-test-thingy次のような bash スクリプトとして記述できます。

exec ssh -o BatchMode=yes "$@" true

これは単純に user@host (およびその他の引数) を渡し、trueリモート ホストで実行を試みます。動作すると、すぐに成功のステータス コード (0) が返されます。

于 2011-04-24T02:04:22.373 に答える