Bagaimana cara menonaktifkan prompt kata sandi dari sisi klien ssh?

9

Saya memiliki skrip yang bergantung pada otentikasi ssh kunci publik / pribadi. Masalahnya adalah bahwa beberapa sistem salah konfigurasi dan tidak memiliki kepercayaan kunci publik / swasta ssh yang tepat. Ketika itu terjadi, sshtanyakan saya kata sandi yang memblokir eksekusi skrip. Saya sudah mencoba perintah ini:

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

Tapi saya masih diminta untuk memasukkan kata sandi root.

Kriket Merah
sumber
Setelah coba-coba saya menemukan opsi yang saya butuhkan. "PreferredAuthentications=publickey"
Red Cricket
Apakah itu lebih baik daripada solusi yang diajukan? (BatchMode)
knocte

Jawaban:

9

Cara kanonik untuk melakukan ini adalah dengan BatchModeopsi:

ssh -o BatchMode=yes …

Menurut manual :

Jika diatur ke "ya", kueri frasa / kata sandi akan dinonaktifkan. Opsi ini berguna dalam skrip dan pekerjaan batch lain di mana tidak ada pengguna yang menyediakan kata sandi.

Saya akan mengharapkan kombinasi PasswordAuthentication=nodan ChallengeResponseAuthentication=nocukup. ssh -vvmungkin menghasilkan petunjuk.

Gilles 'SANGAT berhenti menjadi jahat'
sumber
Itu juga berhasil! $ 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).
Red Cricket