วิธีการปิดการใช้งานให้รหัสผ่านจากด้านลูกค้า ssh?


9

ฉันมีสคริปต์ที่ใช้การพิสูจน์ตัวตนแบบพับลิกคีย์ / พับลิกคีย์ส่วนตัว ปัญหาคือว่าบางระบบมีการกำหนดค่าผิดพลาดและไม่มีการตั้งค่าความน่าเชื่อถือคีย์สาธารณะ / ส่วนตัว ssh ที่เหมาะสม เมื่อสิ่งนั้นเกิดขึ้นsshขอให้ฉันใส่รหัสผ่านเพื่อป้องกันการทำงานของสคริปต์ ฉันได้ลองคำสั่งนี้:

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

แต่ฉันยังคงได้รับพร้อมท์สำหรับรหัสผ่านรูท


หลังจากการทดลองและข้อผิดพลาดฉันพบตัวเลือกที่ฉันต้องการ "PreferredAuthentications=publickey"
Red Cricket

ดีกว่าโซลูชันที่เสนอหรือไม่ (BatchMode)
Knocte

คำตอบ:


9

วิธีการบัญญัตินี้เป็นที่ยอมรับโดยมีBatchModeตัวเลือก:

ssh -o BatchMode=yes …

ตามคู่มือ :

หากตั้งค่าเป็น“ ใช่” การสอบถามข้อความรหัสผ่าน / รหัสผ่านจะถูกปิดการใช้งาน ตัวเลือกนี้มีประโยชน์ในสคริปต์และงานแบ็ตช์อื่น ๆ ที่ไม่มีผู้ใช้อยู่ในการจัดหารหัสผ่าน

ฉันคาดว่าจะมีการรวมกันของPasswordAuthentication=noและChallengeResponseAuthentication=noจะเพียงพอแม้ว่า ssh -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).
Red Cricket
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.