ฉันใช้ Mac OS X และปรากฏว่าหลังจาก SSHing ไปยังเครื่องหลายเครื่องโดยใช้ไฟล์ข้อมูลประจำตัว'ssh-agent' ของฉันสร้างรหัสประจำตัว / คีย์จำนวนมากและบางครั้งก็มีเครื่องระยะไกลมากเกินไปทำให้พวกเขา เตะฉันออกก่อนที่จะเชื่อมต่อ:
ได้รับการยกเลิกการเชื่อมต่อจาก 10.12.10.16: 2: การรับรองความถูกต้องล้มเหลวมากเกินไปสำหรับ cwd
มันค่อนข้างชัดเจนว่าเกิดอะไรขึ้นและหน้านี้พูดถึงรายละเอียดเพิ่มเติม:
เซิร์ฟเวอร์ SSH อนุญาตให้คุณพยายามตรวจสอบสิทธิ์จำนวนครั้งเท่านั้น ความพยายามในการใช้รหัสผ่านแต่ละครั้งล้มเหลวแต่ละ pubkey / identity ล้มเหลวที่มีให้ ฯลฯ รับหนึ่งในความพยายามเหล่านี้ หากคุณมีคีย์ SSH จำนวนมากในตัวแทนของคุณคุณอาจพบว่าเซิร์ฟเวอร์ SSH อาจเตะคุณออกไปก่อนที่จะอนุญาตให้คุณลองใช้การพิสูจน์ตัวตนด้วยรหัสผ่านได้เลย หากเป็นกรณีนี้มีวิธีแก้ไขปัญหาต่าง ๆ เล็กน้อย
การรีบูตจะเป็นการล้างเอเจนต์จากนั้นทุกอย่างจะทำงานได้อีกครั้ง ฉันยังสามารถเพิ่มบรรทัดนี้ลงใน.ssh/config
ไฟล์ของฉันเพื่อบังคับให้ใช้การตรวจสอบสิทธิ์ด้วยรหัสผ่าน:
PreferredAuthentications keyboard-interactive,password
อย่างไรก็ตามฉันเห็นบันทึกย่อในหน้าฉันอ้างอิงพูดคุยเกี่ยวกับการลบคีย์จากเอเจนต์ แต่ฉันไม่แน่ใจว่าจะใช้กับ Mac หรือไม่เนื่องจากพวกเขาดูเหมือนจะถูกล้างข้อมูลหลังจากรีบูตอย่างไรก็ตาม
มีวิธีง่าย ๆ ในการล้างคีย์ทั้งหมดใน 'ssh-agent' (สิ่งเดียวกันที่เกิดขึ้นเมื่อรีบูต) หรือไม่
ssh-add -l
ฉันจะไม่ได้อะไรเลย หากฉันพิมพ์ssh -i ~/keyFileLocation.dsa un@remotehost
ฉันจะได้รับกล่องโต้ตอบป๊อปอัพ OS X เพื่อขอรหัสผ่าน ฉันพิมพ์ลงไปแล้วเชื่อมต่อกับฉัน หากฉันตัดการเชื่อมต่อจากนั้นให้พิมพ์ssh-add -l
รหัสประจำตัวที่ฉันเพิ่งใช้ หลังจากฉันรีสตาร์ทคอมพิวเตอร์และพิมพ์ssh-add -l
มันว่างเปล่าอีกครั้งssh-add -D
ทำงานได้ดีในการล้างคีย์โดยไม่ต้องรีสตาร์ท ขอบคุณ!