ฉันใช้ openssh7.5p1 และ gnupg 2.1.21 บน arch linux (นี่เป็นเวอร์ชันเริ่มต้นที่มาพร้อมกับ arch) ฉันต้องการใช้gpg-agent
เป็นตัวแทน ssh ฉันใส่สิ่งต่อไปนี้ในของฉัน~/.gnupg/gpg-agent.conf
:
pinentry-program /usr/bin/pinentry-qt
enable-ssh-support
Arch เริ่มต้น gpg-agent จาก systemd โดยอัตโนมัติดังนั้นฉันจึงตั้งค่า
export SSH_AUTH_SOCK="$XDG_RUNTIME_DIR/gnupg/S.gpg-agent.ssh"
เมื่อฉันเรียกใช้ssh-add -l
จะไม่มีการระบุตัวตนและps
รายงานgpg-agent --supervised
กระบวนการตามที่ฉันคาดหวัง
น่าเสียดายที่เมื่อฉันทำงานssh-add
ไม่ว่าจะเป็นประเภทปุ่มใดมันไม่ทำงาน นี่คือตัวอย่างของวิธีที่ฉันพยายาม dsa:
$ ssh-keygen -f testkey -t dsa -N ''
Generating public/private dsa key pair.
Your identification has been saved in testkey.
Your public key has been saved in testkey.pub.
$ ssh-add testkey
Could not add identity "testkey": agent refused operation
ฟังก์ชัน gpg อื่น ๆ ทั้งหมดทำงานอย่างถูกต้อง (เข้ารหัส / ถอดรหัส / เซ็นชื่อ) นอกจากนี้ปุ่มที่ฉันสร้างให้ทำงานได้ดีถ้าฉันใช้พวกเขาโดยตรงกับ ssh และพวกเขาทำงานอย่างถูกต้องถ้าฉันเรียกใช้ssh-agent
ที่มาพร้อมกับ openssh
เอกสารบอกว่าssh-add
ควรเพิ่มคีย์~/.gnupg/sshcontrol
แต่เห็นได้ชัดว่าไม่มีอะไรเกิดขึ้น
คำถามของฉัน: อะไรคือวิธีที่ง่ายที่สุดในการโหลดที่สำคัญที่สร้างโดย openssh ของssh-keygen
ลงไปgpg-agent
และคนได้โปรดตัดและวางขั้วเซสชั่นแสดงให้เห็นว่างานนี้หรือไม่?