ssh-add ทำอะไรกันแน่?


15

ฉันเพิ่งติดตั้งแล็ปท็อปของฉันใหม่และพบว่า 'git clone' ไม่ทำงาน ฉันได้รับPermission denied (publickey).ข้อผิดพลาดอย่างสม่ำเสมอ

การแก้ไขมีการบันทึกไว้ในหน้าปัญหา SSHของ GitHub : ใช้ssh-addเพื่อบอก SSH เกี่ยวกับคีย์ที่ฉันต้องการใช้เพื่อตรวจสอบสิทธิ์ใน GitHub

คำถามของฉันคือภายใต้ประทุนssh-addทำอะไรได้จริง?

ฉันตั้งใจจะขยายความเข้าใจเกี่ยวกับ SSH ไปซักพักและนี่เป็นข้อแก้ตัวที่ดีสำหรับการเริ่มต้น :-)

คำตอบ:


21

ssh-addเพิ่มรหัสส่วนตัวของคีย์ (จาก~/.sshไดเรกทอรีของคุณ) ไปยังเอเจนต์การรับรองความถูกต้อง ( ssh-agent) เพื่อให้เอเจนต์ ssh สามารถดูแลการตรวจสอบสิทธิ์สำหรับคุณและคุณไม่มีรหัสผ่านที่เทอร์มินัล


ฉันจะซื่อสัตย์ฉันสับสนในขณะที่ ฉันคิดว่าไคลเอนต์ ssh ใช้คีย์ใน~/.sshไดเรกทอรีของคุณเสมอ distros ทำหน้าที่เทียบเท่าssh-addโดยอัตโนมัติหรือไม่? บางทีนั่นอาจเป็นเหตุผลที่ฉันสับสน
blong

4
sshใช้รหัสใน~/.sshไดเรกทอรี แต่ถ้าคีย์ได้รับการป้องกันโดยวลีรหัสผ่านข้อความรหัสผ่านนี้จะต้องถูกป้อนในบางจุด หากคุณใช้ssh-agentและssh-addคุณพิมพ์ข้อความรหัสผ่านนี้หนึ่งครั้ง sshมิฉะนั้นคุณจะต้องพิมพ์รหัสผ่านทุกครั้งที่คุณใช้ โปรดทราบว่าหากรหัสนั้นไม่ได้รับการป้องกันด้วยรหัสผ่านคุณสามารถใช้งานได้sshโดยไม่ต้องขอรหัสผ่าน
Peter John Acklam

สามารถมีได้หลายปุ่ม SSH ใน~/.sshและนี่อาจจะเป็นสิ่งที่มีประโยชน์อื่น ๆ อีกมากมายที่จะมีให้ดูในดังนั้นและbitbucket เอกสาร
แฟรงก์ Nocke

0

จากบทความนี้ใน gitHubบางครั้งมีการแจกแจงลินุกซ์บางอย่างแม้หลังจากที่คุณตั้งค่าทุกอย่างถูกต้องข้อผิดพลาดนี้จะปรากฏขึ้น:

Agent admitted failure to sign using the key.
debug1: No more authentication methods to try.
Permission denied (publickey).

และคุณควรจะวิ่ง ssh-addแก้ไขปัญหา

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.