gpg-agent từ chối các khóa SSH với ssh-add báo cáo Đại lý từ chối hoạt động


12

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?


Câu trả lời được chấp nhận đã giúp tôi, cảm ơn vì đã nêu câu hỏi này. Điều này xảy ra mọi lúc và với tôi, có giải pháp lâu dài nào không?
gf_

Câu trả lời:


25

Câu trả lời rõ ràng là để chạy:

echo UPDATESTARTUPTTY | gpg-connect-agent

Tôi không biết tại sao chương trình pinentry hoạt động tốt cho các mục đích sử dụng khác như giải mã tập tin, nhưng không hoạt động ssh-add.

Mặc dù điều này hiện đang hoạt động, nó cũng tạo một bản sao của khóa riêng ssh không hiển thị bên dưới gpg -Kvvà hơn nữa dường như không cho phép bạn thay đổi cụm mật khẩu trên khóa riêng của mình (vì bạn không thể chỉnh sửa bằng --edit-key) . Về cơ bản, tôi khá không hài lòng với cách gpg-agentcung cấp khả năng hiển thị thấp vào nơi mà các bí mật của bạn đang được sao chép. Nếu bạn nhấn vào câu hỏi này bởi vì bạn hy vọng gpg-agentcó thể là một lựa chọn tốt hơn ssh-agent, thì tôi khuyến khích bạn nên tuân theo ssh-agentthay vì thử câu trả lời của tôi. Lý do chính để thích gpg-agentlà nếu bạn cần sử dụng thẻ thông minh.


Bạn đã tìm thấy câu trả lời này ở đâu? Nó hoạt động rất tốt!
CMCDragonkai

Cảm ơn vì điều này, đã làm việc cho tôi. Bạn có chạy cái này thường xuyên không? Tại mỗi lần khởi động / đăng nhập? Bất kỳ ý tưởng liên quan đến một sửa chữa "thích hợp"?
gf_


2

Trong trường hợp của tôi, vấn đề là chương trình pinentry được sử dụng. Tôi đã sử dụng pinentry-emacs. Có vẻ như nó không xử lý lời nhắc cửa sổ nhập trường văn bản kép ssh-addsẽ kích hoạt khi được sử dụng với gpg-agent.

Loại bỏ pinentry-emacs và cài đặt pinentry GTK đã giải quyết vấn đề ở đây.


Điều này cuối cùng đã giải quyết vấn đề của tôi sau khi tìm thấy một loạt các nguồn thông báo cho tôi để cập nhật tty khởi động.
William Rosenbloom
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.