SSHクライアント側からパスワードプロンプトを無効にする方法は?


9

公開鍵/秘密鍵のssh認証に依存するスクリプトがあります。問題は、一部のシステムが正しく構成されておらず、適切なssh公開/秘密鍵の信頼が設定されていないことです。その場合はssh、スクリプトの実行をブロックするパスワードを要求してください。私はこのコマンドを試しました:

sudo ssh -o "PasswordAuthentication=no" -o "ChallengeResponseAuthentication=no" root@last-call

しかし、それでもrootパスワードの入力を求められます。


試行錯誤の末、必要なオプションを見つけました。 "PreferredAuthentications=publickey"
レッドクリケット

それは提案された解決策より良いですか?(BatchMode)
knocte 2016

回答:


9

これを行う正規の方法は、BatchModeオプションを使用することです。

ssh -o BatchMode=yes …

マニュアルによると:

「yes」に設定すると、パスフレーズ/パスワードのクエリは無効になります。このオプションは、パスワードを入力するユーザーがいないスクリプトやその他のバッチジョブで役立ちます。

との組み合わせで十分だPasswordAuthentication=noと思っていたでしょうがChallengeResponseAuthentication=nossh -vv手がかりをもたらすかもしれません。


それも機能します!$ sudo ssh last-call-2 Password: $ sudo ssh -o "BatchMode=yes" last-call-2 Permission denied (gssapi-keyex,gssapi-with-mic,publickey,password,keyboard-interactive).
レッドクリケット
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.