ตั้งแต่เมื่อวานทุกครั้งที่ฉันพยายามเชื่อมต่อกับเซิร์ฟเวอร์ ssh ฉันได้รับรหัสผ่านของฉัน ฉันควรทำอย่างไรเพื่อให้ SSH ไม่ขอรหัสผ่านของฉันทุกครั้ง
ตั้งแต่เมื่อวานทุกครั้งที่ฉันพยายามเชื่อมต่อกับเซิร์ฟเวอร์ ssh ฉันได้รับรหัสผ่านของฉัน ฉันควรทำอย่างไรเพื่อให้ SSH ไม่ขอรหัสผ่านของฉันทุกครั้ง
คำตอบ:
ใส่กุญแจสาธารณะของคุณhostnachine:~/.ssh/authorized_keys
และตรวจสอบให้แน่ใจว่ามันมีสิทธิ์ที่เหมาะสม - chmod 600 ดูรายละเอียดเพิ่มเติมได้ที่ man page, AUTHENTICATION โปรดทราบว่าอาจกำหนดค่า sshd ให้ไม่อนุญาตวิธีการลงชื่อเข้าใช้นี้แม้ว่าฉันจะไม่เข้าใจว่าทำไม
ตรวจสอบการอนุญาตของไดเรกทอรีและการอนุญาตของไฟล์
$HOME
ไม่สามารถเขียนได้โดยกลุ่มหรืออื่น ๆ
$HOME/.ssh
จำเป็นต้องมี700
สิทธิ์ไม่สามารถอ่านเขียนได้หรือเรียกใช้งานได้โดยกลุ่มและอื่น ๆ
$HOME/.ssh/authorized_keys
ที่จะไม่เขียนหรือดำเนินการโดยทุกคน
หากคุณพบว่าการอนุญาตไม่เข้มงวดพอลองหาสาเหตุที่ทำให้เกิดปัญหา ครั้งล่าสุดที่เรื่องนี้เกิดขึ้นกับฉันฉันได้รวบรวม PHP ตั้งแต่เริ่มต้น การดำเนินการmake install
ในฐานะ root (Slackware) เปลี่ยนสิทธิ์และความเป็นเจ้าของของ/
หรือ/home
ตามที่ฉันจำได้และป้องกันไม่ให้ ssh ทำงานกับauthorized_keys
และid_rsa.pub
ไฟล์ที่มีอยู่และทำงานมานาน คุณต้องการพิจารณาว่าอะไรเป็นสาเหตุของปัญหาเนื่องจากความเป็นเจ้าของไดเรกทอรีที่เปลี่ยนแปลงและ / หรือการอนุญาตอาจเกิดขึ้นได้เนื่องจากการติดตั้งรูทคิทหรืออะไรทำนองนั้น
ssh-add -l
ตรวจสอบว่าที่สำคัญของคุณจะเต็มไปด้วย