web-dev-qa-db-ja.com

SSH:パスワード認証を完全に無効にする

パスワード認証を完全に無効にする方法はありますか?コマンドラインは次のとおりです。

ssh -o KbdInteractiveAuthentication=no -o PasswordAuthentication=no machine" 

それでもパスワードを要求します。もちろん、可能であればサーバーに触れずにこれを実行したいと思います。

13
Peltier

さて、私はそれを見つけました!それは

ssh -o BatchMode=yes Host

特に以前に試したオプションが機能しないという事実があるため、あまり直感的ではありません。

19
Peltier

これらのオプションを.ssh/configに追加して、入力を節約できます。

Host host
BatchMode yes

仕事をする必要があります。

4
Dan Andreatta

私はちょうどこの問題を抱えていて、ここで答えを見つけました:

http://www.gossamer-threads.com/lists/openssh/dev/47179

基本的に、opensshはkeyboard-interactiveを使用してchallenge-repsonseを実装しました。したがって、これらのオプションのいずれかが「yes」に設定されている場合、コードではキーボードインタラクティブが「yes」に設定されます。必要な動作を得るには、両方を「いいえ」に設定する必要があります。

私がしなければなりませんでした:

ssh -o PasswordAuthentication=no -o KbdInteractiveAuthentication=no -o ChallengeResponseAuthentication=no

もちろん、BatchMode=yes設定は、これらすべてを処理し、将来、新しいユーザーの対話型認証方法に対して将来を保証します。

3
onlynone