บันทึกตัวตนที่เพิ่มโดย ssh-add เพื่อคงอยู่


14

ฉันเพิ่งติดตั้งเพื่อให้ฉันสามารถใช้กับopensshgit

ในกระบวนการตั้งค่า (ตามบทความนี้ ) ฉันรันคำสั่ง:

$ eval "$(ssh-agent -s)"
$ ssh-add ~/.ssh/<name of key>

ต่อมาหลังจากฉันออกจากระบบและกลับมาฉันพยายามใช้git pushฉันได้รับข้อผิดพลาด วิธีแก้ไขข้อผิดพลาดนี้กำลังเรียกใช้คำสั่งเดียวกันเหล่านั้นอีกครั้ง

กรุณาบอกฉันว่าฉันสามารถ

  • ssh-agentวิ่งต่อไปดังนั้นฉันไม่ต้องเริ่มใหม่
  • จดจำปุ่มที่ฉันเพิ่มดังนั้นฉันไม่ต้องเพิ่มกุญแจทุกครั้ง

เพื่อชี้แจงฉันใช้ zsh เพื่อให้คุณสมบัติทุบตีบางอย่างไม่ทำงานใน. zshrc ของฉัน


คุณควรเริ่มต้นด้วยการทำความเข้าใจกับสิ่งที่เป็นssh-agentและวิธีการทำงานก่อนที่จะพยายามให้เหมาะกับกรณีการใช้งานของคุณบิด
Jakuje

คุณมีข้อผิดพลาดอะไร
Jakuje

@Jakuje ข้อผิดพลาดเกี่ยวกับ pubkey ที่ขาดหายไปและถามว่า "คุณเริ่มต้น ssh-agent แล้วหรือยัง?"
timotree

คำตอบ:


16

มีssh-agentไว้เพื่ออะไรและทำงานอย่างไร

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

ตกลงฉันจะทำให้มันเป็นไปโดยอัตโนมัติได้อย่างไร

ssh-agentเริ่มต้นโดยอัตโนมัติ

เพิ่ม

[ -z "$SSH_AUTH_SOCK" ] && eval "$(ssh-agent -s)"

ที่~/.bashrcสคริปต์เริ่มต้นของคุณหรือ ( ~/.zshrc)

ทำการเพิ่มปุ่มอัตโนมัติ

ปุ่มสามารถเพิ่มโดยอัตโนมัติเมื่อมีการใช้งานครั้งแรกเมื่อคุณเพิ่ม

AddKeysToAgent yes

~/.ssh/configที่คุณ

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการเห็น~/.ssh/configman ssh_config


ดังนั้นคุณกำลังบอกว่าถ้าฉันเปิดใช้งาน AddKeysToAgent แล้วเมื่อใดก็ตามที่ฉันพิมพ์eval "$(ssh-agent -s)"มันจะเพิ่มคีย์ของฉัน
timotree

หากตัวแทนกำลังทำงานอยู่และคุณsshสนับสนุนตัวเลือกนี้แล้วใช่
Jakuje

คุณช่วยอธิบายได้อย่างชัดเจนว่าฉันจะเริ่มต้นโดยอัตโนมัติได้ssh-agentอย่างไร
timotree

โดยทั่วไปตามที่อธิบายไว้ในคำตอบอื่น ๆ [ -z "$SSH_AUTH_SOCK" ] && eval $(ssh-agent)
Jakuje

ใช้งานได้กับ zsh หรือไม่
timotree

2

เพิ่มไปยัง ~/.bashrc

if [ -z "$SSH_AUTH_SOCK" ] ; then
 eval `ssh-agent -s`
 ssh-add
fi

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