Tôi đang sử dụng openssh7.5p1 và gnupg 2.1.21 trên arch linux (đây là những phiên bản mặc định đi kèm với arch). Tôi muốn sử dụng gpg-agentnhư một đại lý ssh. Tôi đặt những điều sau đây trong ~/.gnupg/gpg-agent.conf:
pinentry-program /usr/bin/pinentry-qt
enable-ssh-support
Arch tự động khởi động một tác nhân gpg từ systemd, vì vậy tôi đã đặt
export SSH_AUTH_SOCK="$XDG_RUNTIME_DIR/gnupg/S.gpg-agent.ssh"
Khi tôi chạy ssh-add -l, nó báo cáo không có danh tính và psbáo cáo một gpg-agent --supervisedquá trình như tôi mong đợi.
Thật không may, khi tôi chạy ssh-add, bất kể loại khóa nào, nó không hoạt động. Đây là một ví dụ về cách tôi đã thử 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
Tất cả các chức năng gpg khác hoạt động đúng (mã hóa / giải mã / ký). Ngoài ra, các khóa tôi tạo hoạt động tốt nếu tôi sử dụng chúng trực tiếp với ssh và chúng hoạt động chính xác nếu tôi chạy khóa ssh-agentđi kèm với openssh.
Các tài liệu nói rằng ssh-addnên thêm khóa vào ~/.gnupg/sshcontrol, nhưng rõ ràng không có gì đang xảy ra.
Câu hỏi của tôi: là cách dễ nhất để tải một chìa khóa được tạo ra bởi openssh của Gì ssh-keygenvào gpg-agent, và có thể ai đó xin vui lòng cắt và dán một phiên terminal cho thấy cách thức hoạt động này?