คำสั่ง ssh-add ไม่ได้เพิ่มตัวตนของฉันไปยัง ssh-agent


20

ฉันเพิ่งติดตั้งอูบุนตู 13.10 และฉันกำลังจะเพิ่มตัวตนของฉันให้กับ ssh-agent ของฉันดังนั้นฉันจึงเปิดเทอร์มินัลและทำสิ่งนี้

bjorgvin@buntu:~$ ssh-add -l
The agent has no identities.
bjorgvin@buntu:~$ ssh-add
bjorgvin@buntu:~$ ssh-add -l
The agent has no identities.
bjorgvin@buntu:~$ 

ความคิดใด ๆ

คำตอบ:


26

จากman ssh-add:

ssh-add เพิ่มไพรเวตคีย์ส่วนตัวให้กับเอเจนต์การพิสูจน์ตัวตน ssh-agent (1) เมื่อรันโดยไม่มีอาร์กิวเมนต์จะเพิ่มไฟล์ ~ / .ssh / id_rsa, ~ / .ssh / id_dsa, ~ / .ssh / id_ecdsa และ ~ / .ssh / identity [... ]

ไฟล์ข้อมูลประจำตัวไม่ควรอ่านได้โดยทุกคนยกเว้นผู้ใช้ โปรดทราบว่า ssh-add จะไม่สนใจไฟล์ระบุตัวตนหากผู้อื่นสามารถเข้าถึงได้

ดังนั้นเนื่องจากThe agent has no identities.ข้อผิดพลาดคุณอาจไม่มีไฟล์เหล่านั้นหรือไฟล์อื่น ๆ อาจเข้าถึงได้โดยผู้อื่น คุณสามารถตรวจสอบสิ่งเหล่านี้โดยใช้คำสั่งต่อไปนี้:

ls -l ~/.ssh

นอกจากนี้หลังจากที่คุณเรียกใช้ssh-addคำสั่งให้เรียกใช้echo $?เพื่อดูสถานะข้อผิดพลาดของคำสั่งก่อนหน้า หากสถานะการออกคืนเป็น 0 คำสั่งจะถูกดำเนินการเป็นผลสำเร็จ หากสถานะการออกส่งคืนค่าที่ไม่เป็นศูนย์คำสั่งจะล้มเหลวในการดำเนินการ

ดูman ssh-addข้อมูลเพิ่มเติม


จริงฉันไม่มีไฟล์เหล่านั้นและค่าการออกssh-addเป็น 1 แต่ไม่ใช่ 0 มีปัญหาบางอย่างเกี่ยวกับสิทธิ์ของฉันเนื่องจากไฟล์ไม่ได้ถูกสร้างขึ้น ความคิดใดที่ฉันสามารถแก้ไขได้ ไดเรกทอรี~/.sshมีอยู่ (ว่างเปล่า) แต่ไม่ปรากฏขึ้นเมื่อฉันทำls -l
bjorgvin

ฉันรันคำสั่งนี้ssh-keygen -q -t rsa -N 'password' -f ~/.ssh/id_rsaเพื่อให้คน ssh-keygenช่วยขอบคุณ
bjorgvin

1
นั่นทำให้คำใบ้การนำเข้าเป็นทิศทางที่ถูกต้องสำหรับฉัน ฉันมีหลายคีย์ ssh และก่อนอื่นต้องเพิ่มคีย์ที่เหมาะสมโดยใช้ ssh-add <keyname> จากนั้นมันก็ทำงานเหมือนเครื่องราง ขอบคุณ
paulroho

3
ด้วยเหตุผลบางอย่างฉันไม่ได้มีเอาต์พุตใด ๆ เมื่อทำงานssh-addหลังจากป้อนข้อความรหัสผ่าน (มันล้มเหลวตามการ$?ยึด 1 ฉันพยายามchmod 600 ~/.ssh/id_rsa* ไม่มีโชคฉันสร้างรหัสใหม่ตั้งแต่เริ่มต้นด้วยการssh-keygenทำงานแล้วเศร้า แต่อย่างน้อยก็เป็น ตกลงตอนนี้ (คีย์ความล้มเหลวที่ถูกสร้างขึ้นโดยใช้ssh-keygen -t rsa -b 4096 -C "your_email@example.com"ฉันเท่านั้นวิ่งssh-keygenแทนในครั้งนี้).
GabLeRoux

1
ฉันต้องทำตามลำดับต่อไปนี้: (หากจำเป็นให้สร้างคีย์ ssh ใหม่และตรวจสอบให้แน่ใจว่าได้เพิ่มคีย์. pub ไปยัง github) จากนั้น cd ~/.ssh && ls -lahดูการอ่าน / เขียนสิทธิ์ในโฟลเดอร์. ssh เปลี่ยนคีย์ทั้งหมด (s ) ด้วยchmod 400 myKeyแล้วssh-add **ABSOLUTE**pathToKey ถ้าคุณไม่ได้เพิ่มABSOLUTEเส้นทางมันจะไม่ทำงาน จากนั้นทดสอบด้วยssh -vT git@github.com
jungledev

3

นอกเหนือจากข้อควรพิจารณาข้างต้นฉันพบว่าหากคุณใช้เชลล์สำรองคุณอาจต้องกำหนดค่าให้โหลดเอเจนต์ ssh ยกตัวอย่างเช่นใน zsh หนึ่งต้องเพิ่มssh-agentไปในplugins.zshrc

วิธีนี้ใช้งานได้ดีกับ Ubuntu 17.10 กับ Zsh ล่าสุด

คนอื่น ๆ พบว่ามีid_ed25519กุญแจrsaทำงานได้โดยไม่ต้องใช้ปลั๊กอิน หลังจากเพิ่มssh-agentให้~/.zshrcรีสตาร์ทเชลล์ด้วยexec "$SHELL"และดำเนินการ:ssh-add ~/.ssh/id_ed25519

Enter passphrase for ~/.ssh/id_ed25519: 
Identity added: ~/.ssh/id_ed25519 (user@host)

เพิ่มปลั๊กอิน ssh-agent ไปที่. zshrc ผ่านคำแนะนำที่นี่: github.com/robbyrussell/oh-my-zsh/tree/master/plugins/ssh-agent
Kariem
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.