Làm thế nào tôi có thể khởi động lại gpg-agent?


67

Một số thay đổi trong cấu hình GnuPG yêu cầu gpg-agentkhởi động lại / khởi động lại, nhưng ... Làm thế nào tôi có thể làm điều đó? Tôi đã thử gpg-agent restart, service gpg-agent restartnhưng không thành công.

Câu trả lời:


99

Với GPG hiện tại (2.1+), để dừng gpg-agent bạn có thể sử dụng gpgconf --kill, như thế này:

gpgconf --kill gpg-agent

Bạn không cần phải tự khởi động lại nó. GPG sẽ khởi động lại nó khi cần thiết.


6
Có những trường hợp bạn muốn khởi động tác nhân một cách thủ công, ví dụ như khi bạn sử dụng nó với hỗ trợ ssh được kích hoạt. Tác nhân sẽ KHÔNG tự động bắt đầu khi bạn thử đăng nhập ssh.
hasufell

1
Nếu bạn từng xóa ~/.gnupgthư mục, bạn sẽ cần khởi động lại tác nhân gpg bằng tay.
Christopher Martin

21

Cách ưa thích của tôi là với gpg-connect-agent reloadagent /bye. Xem gpg-connect-agent help /byeđể biết danh sách đầy đủ các lệnh.


10

gpg-agentkhông phải là dịch vụ toàn hệ thống nhưng được bắt đầu một lần cho mỗi người dùng (do đó, nó không được quản lý bởi service). Mặc dù đôi khi được gọi bởi các dotfiles của người dùng hoặc ít nhất là trong Debian và các dẫn xuất cũng khi X11 được khởi động (và gpg-agentđược cài đặt) trong /etc/X11/Xsession.d/90gpg-agent(để đảm bảo rằng một lệnh chung gpg-agentđược sử dụng bởi tất cả các lệnh gọi GnuPG, bất kể từ thiết bị đầu cuối hay ứng dụng GUI); nó cũng được GnuPG tự động khởi động khi có yêu cầu. Từ man gpg-agent:

Tác nhân được tự động bắt đầu theo yêu cầu bởi gpg, gpgsm, gpgconf hoặc gpg-connect- agent. Do đó, không có lý do để bắt đầu nó bằng tay. Trong trường hợp bạn muốn sử dụng Đại lý Secure Shell đi kèm, bạn có thể bắt đầu đại lý bằng cách sử dụng:

gpg-connect-agent /bye

Thông thường, một đơn giản killall gpg-agent(từ một vỏ không gốc) sẽ tốt cho việc chấm dứt gpg-agent. Bạn có thể sẽ thấy một chút chậm trễ khi sử dụng GnuPG vào lần tiếp theo, khi gpg-agentđược bắt đầu lại.


2
Điều này thay đổi trong GPG 2.1.x và quá trình được xử lý thông qua dirmngr. Các lệnh để chạy sau đó được dirmngr --shutdowntheo sau dirmngr --daemonvà đôi khi là các tùy chọn bổ sung (tôi cũng bao gồm một homedir GPG cụ thể và --use-torcờ).
Bến

1

Theo kinh nghiệm của tôi, có một số tình huống trong đó gpg sẽ không khởi động được một tác nhân gpg mới (nhập khóa mới?).

Giết các đặc vụ cũ như vậy:

GNUPGHOME="${GNUPGHOME:-$HOME/.gnupg}" gpgconf --kill gpg-agent

và sau đó bắt đầu cái mới:

gpg-agent --homedir "${GNUPGHOME:-$HOME/.gnupg}" --daemon

Đặt rõ ràng --homedir khi bắt đầu đảm bảo danh sách ps của bạn rõ ràng khi bạn có nhiều hơn một homedir; và nó không phù hợp với những gì gpg làm khi nó khởi động nó.

Đặt GNUPGHOME khi dừng là không cần thiết, nhưng nó có thể giúp bạn hoặc người đánh giá mã thoải mái hơn.

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.