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-agent
như 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à ps
báo cáo một gpg-agent --supervised
quá 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-add
nê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-keygen
và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?