ฉันใช้ 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และคนได้โปรดตัดและวางขั้วเซสชั่นแสดงให้เห็นว่างานนี้หรือไม่?