Cập nhật
Kể từ Ubuntu 16.04, trình cắm hoạt động như mong đợi và không cần hạ cấp như đề xuất trong câu trả lời được chấp nhận. Câu hỏi được áp dụng cho Ubuntu 15.04 và, có thể , 15.10.
Bài gốc
Tôi đã sử dụng Thunderbird + Enigmail trong nhiều năm. Tôi hiện đang sử dụng Thunderbird 38.5.1, Enigmail phiên bản 1.9 (20160223-1641) và GPG 2.0.26 trong PC làm việc của tôi (Ubuntu 15.04 64-bit, w / Gnome Shell).
Vài ngày trước, sau 1yr + hoạt động, Enigmail đột nhiên bắt đầu phàn nàn với lỗi sau mỗi khi tôi cố gắng gửi email đã ký hoặc mã hóa:
GnuPG đã báo cáo lỗi trong giao tiếp với gpg-agent (một thành phần của GnuPG).
Đây là lỗi thiết lập hệ thống hoặc lỗi cấu hình, ngăn Enigmail hoạt động bình thường và không thể tự động sửa.
Chúng tôi thực sự khuyên bạn nên tham khảo trang web hỗ trợ của chúng tôi tại https://enigmail.net/faq .
Tôi đã đi qua trang FAQ và thử một vài thứ, nhưng tôi vẫn chưa thể khắc phục vấn đề.
Các pinentry
lệnh hoạt động tốt, và hiển thị các pinentry-qt4
cửa sổ (tức là không dựa trên văn bản):
pinentry <<EOT
SETDESC Hello World
CONFIRM
EOT
Tuy nhiên, gpg-agent-connect
lệnh thất bại:
gpg-connect-agent <<EOT
heredoc> GETINFO version
heredoc> EOT
ERR 280 not implemented
Tôi đã thử vô hiệu hóa khóa gnome như được đề xuất, nhưng nó cũng không hoạt động. (Vâng, tôi đã khởi động lại hệ thống ở giữa, nhưng tôi cũng muốn giữ keyring kích hoạt như bình thường.) Tôi cũng đã cố gắng xuất khẩu và tái nhập khẩu các thiết lập Enigmail tôi (tức là đổi tên $HOME/.gnupg/
để cái gì khác trong khi chờ đợi), nhưng điều đó đã làm cũng không hoạt động.
Thật kỳ lạ, khi tôi khởi động gpg-agent
thủ công từ trình bao, rồi khởi động Thunderbird, nó dường như đang giao tiếp với gpg-agent
, như hình dưới đây:
gpg-agent --debug-level expert --use-standard-socket --daemon /bin/sh
gpg-agent[6469]: enabled debug flags: command cache assuan
gpg-agent[6469]: directory `/home/ray/.gnupg' created
gpg-agent[6469]: directory `/home/ray/.gnupg/private-keys-v1.d' created
gpg-agent[6469]: listening on socket `/home/ray/.gnupg/S.gpg-agent'
gpg-agent[6470]: gpg-agent (GnuPG) 2.0.26 started
#
# Thunderbird started at this point
#
$ gpg-agent[6470]: handler 0x558fd8c23cf0 for fd 7 started
gpg-agent[6470]: chan_7 -> OK Pleased to meet you, process 6470
gpg-agent[6470]: chan_6 <- OK Pleased to meet you, process 6470
gpg-agent[6470]: chan_6 -> GETINFO pid
gpg-agent[6470]: chan_7 <- GETINFO pid
gpg-agent[6470]: chan_7 -> D 6470
gpg-agent[6470]: chan_7 -> OK
gpg-agent[6470]: chan_6 <- D 6470
gpg-agent[6470]: chan_6 <- OK
gpg-agent[6470]: chan_6 -> BYE
gpg-agent[6470]: chan_7 <- BYE
gpg-agent[6470]: chan_7 -> OK closing connection
gpg-agent[6470]: handler 0x558fd8c23cf0 for fd 7 terminated
Mặc dù vậy, tôi không thấy bất kỳ đầu ra nào nếu tôi cố gửi một email đã ký và / hoặc được mã hóa. Điều này chỉ hiển thị khi Thunderbird được bắt đầu.
Ngoài ra, tôi đã thêm /usr/bin/gpg-agent --daemon
lệnh dưới dạng một ứng dụng khởi động trong bảng điều khiển Ứng dụng khởi động Gnome, nhưng nó không có sự khác biệt.
Tôi nghĩ rằng tôi đã áp dụng một bản cập nhật thường xuyên vào khoảng 23/2, nhưng vấn đề không thể thấy được cho đến khi hệ thống được khởi động lại vào 24/24 trong tuần này. Thật không may, tôi không nhớ gói nào đã được cập nhật, nhưng không có nhiều gói. (Tôi thường giữ cho hệ thống được cập nhật.)
Xin lưu ý rằng điều này đã hoạt động với các vấn đề trong nhiều năm hoặc lâu hơn, cho đến khoảng 2 ngày trước. (Tôi cũng đã sử dụng thiết lập này trong máy tính để bàn tại nhà cho 4yrs + nhưng không có vấn đề gì, nhưng PC làm việc của tôi là máy tính xách tay và đôi khi Ubuntu không hoạt động tốt ở đó vì lý do không rõ ...)
Khi tôi cố gắng mở các email được mã hóa mà tôi đã nhận được (hoặc các bản nháp đã lưu, cũng được mã hóa), tôi nhận được thông báo lỗi tương tự gpg-agent
, nhưng nó giải mã thông báo email sau khi hỏi tôi cụm từ khóa riêng tư của tôi.
H: Làm cách nào tôi có thể giải quyết lỗi giao tiếp này ngăn tôi gửi email đã ký / mã hóa?
Để xem xét vấn đề đã được khắc phục, tình huống cần quay trở lại hoạt động bình thường mà không có thông báo lỗi, v.v.
Cảm ơn trước cho bất kỳ trợ giúp mà bạn có thể cung cấp để giúp khắc phục vấn đề này.
Trong khi tôi đang viết bài này, tôi nhận thấy thông báo sau từ gpg-agent
daemon trong terminal:
# ...from previous output above
gpg-agent[6470]: chan_7 -> OK closing connection
gpg-agent[6470]: handler 0x558fd8c23cf0 for fd 7 terminated
#
# new/unexpected error message from agent
#
gpg-agent[6470]: can't connect my own socket: IPC connect call failed
gpg-agent[6470]: this process is useless - shutting down
gpg-agent[6470]: gpg-agent (GnuPG) 2.0.26 stopped
Điều này xuất hiện bất ngờ, vì tôi đã không yêu cầu Thunderbird làm bất cứ điều gì cụ thể trong thời gian đó.
Tôi đã cập nhật từ 15.04 -> 15.10 -> 16.04 và có thể xác nhận rằng Thunderbird 38.6 + Enigmail 1.9.1 đang hoạt động bình thường đối với tôi. Đầu ra của các lệnh cũng là những gì chúng nên là:
➜ ~ pinentry <<EOT
heredoc> SETDESC Hello World
heredoc> CONFIRM
heredoc> EOT
OK Pleased to meet you
OK
OK
➜ ~ gpg-connect-agent <<EOT
heredoc> GETINFO version
heredoc> EOT
D 2.1.11
OK
ERROR check_hijack
có thực sự được phát ra không? Câu hỏi thường gặp xuất hiện đã lỗi thời và tôi không chắc tùy chọn xem nhật ký gỡ lỗi của Enigmail ở đâu nữa.
Enigmail > Debugging Options > View Log
tiết lộ WARNING: The GNOME keyring manager hijacked the GnuPG agent
. Vì vậy, tôi khá chắc chắn GnomeKeyring có liên quan. echo | gpg2 --sign
tiết lộ vấn đề trên CLI. Đáng buồn là vô hiệu hóa khóa gnome (như cách giải quyết duy nhất) không phải là một lựa chọn cho tôi.