โปรดทราบว่ามีรายงานบั๊กอย่างน้อยสองรายงานสำหรับการssh-add -d/-D
ไม่ลบคีย์:
ปัญหาที่แน่นอนคือ:
ssh-add -d/-D
ลบเฉพาะคีย์ที่เพิ่มด้วยตนเองจาก gnome-keyring
ไม่มีวิธีลบคีย์ที่เพิ่มโดยอัตโนมัติ
นี่เป็นข้อผิดพลาดดั้งเดิมและยังคงปรากฏอยู่อย่างแน่นอน
ตัวอย่างเช่นหากคุณมีข้อมูลประจำตัวของ ssh ที่โหลดโดยอัตโนมัติสองรายการที่เชื่อมโยงกับบัญชี GitHub สองบัญชีที่ต่างกัน - พูดสำหรับที่ทำงานและที่บ้าน - ไม่มีทางที่จะสลับระหว่างพวกเขาได้ GitHub ทำรายการแรกที่ตรงกันดังนั้นคุณจะปรากฏเป็นผู้ใช้ 'บ้าน' ของคุณไปยัง GitHub โดยไม่มีวิธีอัพโหลดสิ่งต่าง ๆ ไปยังโครงการทำงาน
การอนุญาตให้ssh-add -d
ใช้กับคีย์ที่โหลดอัตโนมัติ (และssh-add -t X
เพื่อเปลี่ยนอายุการใช้งานของคีย์ที่โหลดอัตโนมัติ) จะคืนค่าการทำงานที่ผู้ใช้ส่วนใหญ่คาดหวัง
แม่นยำยิ่งขึ้นเกี่ยวกับปัญหา:
ผู้ร้ายคือgpg-keyring-daemon
:
- มันทำลายการทำงานปกติของ ssh-agent ส่วนใหญ่เพื่อให้สามารถเปิดกล่องสวย ๆ ซึ่งคุณสามารถพิมพ์ข้อความรหัสผ่านสำหรับคีย์ ssh ที่เข้ารหัส
- และมันก็อุ้มผ่านของคุณ
.ssh
ไดเรกทอรีและเพิ่มปุ่มใด ๆ ที่พบในตัวแทนของคุณโดยอัตโนมัติ
- และมันจะไม่ยอมให้คุณลบกุญแจเหล่านั้น
เราเกลียดสิ่งนี้อย่างไร อย่านับวิธี - ชีวิตนั้นสั้นเกินไป
ความล้มเหลวเกิดขึ้นเนื่องจากลูกค้า ssh รุ่นใหม่ลองใช้คีย์ทั้งหมดในเอเจนต์ ssh ของคุณโดยอัตโนมัติเมื่อเชื่อมต่อกับโฮสต์
หากมีจำนวนมากเกินไปเซิร์ฟเวอร์จะปฏิเสธการเชื่อมต่อ
และเนื่องจาก gnome-keyring-daemon ได้ตัดสินใจด้วยตัวเองว่ามีกี่คีย์ที่คุณต้องการให้ตัวแทนเอสเอสเอสของคุณมีและทำการโหลดอัตโนมัติและจะไม่ลบคุณคุณจะได้รับ
ข้อผิดพลาดนี้ยังคงได้รับการยืนยันใน Ubuntu 14.04.4 เร็ว ๆ นี้เมื่อสองวันก่อน (21 สิงหาคม 2014)
วิธีแก้ปัญหาที่เป็นไปได้:
- ทำ
ssh-add -D
เพื่อลบคีย์ที่คุณเพิ่มด้วยตนเองทั้งหมด นอกจากนี้ยังล็อคกุญแจที่เพิ่มโดยอัตโนมัติ แต่ไม่ได้ใช้งานมากนักเนื่องจากgnome-keyring
จะขอให้คุณปลดล็อคปุ่มเหล่านี้เมื่อคุณลองทำgit push
จะขอให้คุณปลดล็อคพวกเขานะเมื่อคุณพยายามทำ
- นำทางไปยัง
~/.ssh
โฟลเดอร์และย้ายไฟล์สำคัญทั้งหมดยกเว้นไฟล์ที่คุณต้องการระบุลงในโฟลเดอร์แยกต่างหากที่เรียกว่าการสำรองข้อมูล หากจำเป็นคุณสามารถเปิดม้านำ้าและลบกุญแจได้จากที่นั่น
- ตอนนี้คุณควรจะสามารถทำได้
git push
โดยไม่มีปัญหา
วิธีแก้ปัญหาอื่น:
สิ่งที่คุณต้องการทำคือปิดgpg-keyring-daemon
โดยสิ้นเชิง
ไปที่System --> Preferences --> Startup Applications
และยกเลิกการเลือก "SSH Key Agent (Gnome Keyring SSH Agent)
" คุณจะต้องเลื่อนลงเพื่อค้นหา
คุณจะยังคงได้รับssh-agent
แต่ตอนนี้มันจะทำงานได้ตามปกติ: ไม่มีปุ่มที่โหลดอัตโนมัติคุณเรียกใช้ ssh-add เพื่อเพิ่มพวกเขาและถ้าคุณต้องการลบกุญแจคุณสามารถทำได้ ลองจินตนาการว่า
ความคิดเห็นนี้แนะนำ:
การแก้ปัญหาคือการป้องกันไม่ให้gnome-keyring-manager
เริ่มต้นขึ้นซึ่งเป็นการยากที่จะเกิดขึ้นได้ในที่สุดโดยการยกเลิกการอนุญาตให้ใช้ไฟล์โปรแกรม
Ryan Lueเพิ่มกรณีมุมที่น่าสนใจอีกในความคิดเห็น :
ในกรณีนี้จะช่วยให้ทุกคน: ฉันได้ลองลบid_rsa
และid_rsa.pub
ไฟล์ทั้งหมดและกุญแจยังคงปรากฏขึ้น
ปรากฎว่าgpg-agent
มีการแคชพวกเขาใน~/.gnupg/sshcontrol
ไฟล์ ; ฉันต้องลบมันเองจากตรงนั้น
นั่นคือกรณีที่เมื่อได้รับการเพิ่มในขณะที่ที่นี่keygrip
ssh-add -d
?