คีย์ ssh ยังคงอยู่แม้ว่าฉันจะลบคีย์ส่วนตัวออกจาก ~ / .ssh - ทำไม


18

ฉันสร้างคีย์ SSH (ภาครัฐและเอกชน) ~/.ssh/myServer/และเก็บไว้ใน

ฉันเพิ่มคีย์สาธารณะใน~/.ssh/authorized_keysไฟล์เซิร์ฟเวอร์และทุกอย่างใช้งานได้ดี!

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

ทำไมฉันถึงยังสามารถเชื่อมต่อโดยไม่มีรหัสผ่านได้

คำตอบ:


24

ยินดีต้อนรับสู่โลกมหัศจรรย์ของ OS X Keychain และssh-agent ! จากหน้าคน:

ssh-agent เป็นโปรแกรมสำหรับเก็บกุญแจส่วนตัวที่ใช้สำหรับการตรวจสอบกุญแจสาธารณะ (RSA, DSA, ECDSA) แนวคิดคือ ssh-agent เริ่มต้นขึ้นในตอนต้นของเซสชัน X หรือเซสชันการเข้าสู่ระบบและหน้าต่างหรือโปรแกรมอื่น ๆ ทั้งหมดเริ่มต้นเป็นไคลเอนต์ไปยังโปรแกรม ssh-agent ผ่านการใช้ตัวแปรสภาพแวดล้อม - ables ตัวแปร ables ตัวแทนสามารถค้นหาและใช้โดยอัตโนมัติสำหรับการตรวจสอบเมื่อเข้าสู่เครื่องอื่น ๆ โดยใช้ ssh (1)

ไพรเวตคีย์ของคุณถูกแคชในเอเจนต์และกำลังดึงข้อมูลจากที่นั่นเพื่อตรวจสอบสิทธิ์เซสชันของคุณ OS X ผ่านทาง Keychain ทำแคช ssh-agent อัตโนมัติให้คุณเพราะเป็น "ผู้ใช้ที่เป็นมิตร" มันน่าตกใจเล็กน้อย แต่ส่วนใหญ่แล้วมันเป็นสิ่งที่มีประโยชน์ที่เกิดขึ้น

ค่าเริ่มต้นของเวลาสำหรับคีย์ที่แคชอยู่ตลอดไป นั่นอาจไม่ใช่ค่าเริ่มต้นที่ดี มันจะล้างปุ่มแคชในการออกจากระบบ / เข้าสู่ระบบรอบหรือรีบูต หรือคุณสามารถบังคับให้ล้างด้วยการฆ่าตัวแทนปัจจุบันโดยใช้:

ssh-add -D

คุณสามารถแสดงรายการข้อมูลรับรองทั้งหมดที่แคชไว้โดยตัวแทนได้โดยเรียกใช้:

ssh-add -l

สิ่งนี้จะทำเช่นเดียวกัน แต่แสดงกุญแจสาธารณะแบบเต็ม:

ssh-add -L

ว้าว! ขอบคุณมาก! ฉันสับสนจริง ๆ กับสิ่งที่เกิดขึ้น ฉันเข้าใจแล้ว!
poltj18

2
@FAYNUS หากวิธีนี้ช่วยแก้ปัญหาสำหรับคุณโปรดกดเครื่องหมายถูกสีเขียวทางด้านขวาเพื่อทำเครื่องหมายเป็น "คำตอบที่ยอมรับ"! ยินดีต้อนรับสู่ถามที่แตกต่างกัน!
Ian C.
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.