ปรับปรุง
ตั้งแต่ Ubuntu 16.04 ปลั๊กอินทำงานตามที่คาดไว้และไม่จำเป็นต้องปรับลดรุ่นตามที่แนะนำในคำตอบที่ยอมรับ คำถามนี้ใช้ได้กับ Ubuntu 15.04 และอาจเป็น 15.10
โพสต์ต้นฉบับ
ฉันใช้ธันเดอร์เบิร์ด + อินิกเมลมาหลายปีแล้ว ปัจจุบันฉันใช้ Thunderbird 38.5.1, Enigmail เวอร์ชัน 1.9 (20160223-1641) และ GPG 2.0.26 ในพีซีที่ทำงานของฉัน (Ubuntu 15.04 64- บิต, W / Gnome Shell)
ไม่กี่วันที่ผ่านมาหลังจาก 1 ปีของการดำเนินงาน Enigmail ก็เริ่มบ่นกับข้อผิดพลาดต่อไปนี้ทุกครั้งที่ฉันพยายามส่งอีเมลที่เซ็นชื่อหรือเข้ารหัส:
GnuPG รายงานข้อผิดพลาดในการสื่อสารกับ gpg-agent (ส่วนประกอบของ GnuPG)
นี่เป็นข้อผิดพลาดในการตั้งค่าระบบหรือการกำหนดค่าที่ป้องกันไม่ให้อินิกเมลทำงานอย่างถูกต้องและไม่สามารถแก้ไขได้โดยอัตโนมัติ
เราขอแนะนำให้คุณปรึกษาเว็บไซต์สนับสนุนของเราที่ https://enigmail.net/faq
ฉันผ่านหน้าคำถามที่พบบ่อยและลองหลายสิ่งหลายอย่าง แต่ฉันยังไม่สามารถแก้ไขปัญหาได้
pinentry
คำสั่งปรับการทำงานและการแสดงpinentry-qt4
หน้าต่าง (เช่นไม่ขึ้นอยู่กับข้อความ):
pinentry <<EOT
SETDESC Hello World
CONFIRM
EOT
อย่างไรก็ตามgpg-agent-connect
คำสั่งล้มเหลว:
gpg-connect-agent <<EOT
heredoc> GETINFO version
heredoc> EOT
ERR 280 not implemented
ฉันได้ลองปิดใช้งานพวงกุญแจ gnome ตามที่แนะนำแล้ว แต่มันก็ไม่ทำงานเหมือนกัน (ใช่ฉันได้รีสตาร์ทระบบในระหว่างนั้น แต่ฉันยังต้องการให้เปิดใช้งานพวงกุญแจได้ตามปกติ) ฉันพยายามส่งออกและนำเข้าการตั้งค่า Enigmail อีกครั้ง (เช่นเปลี่ยนชื่อ$HOME/.gnupg/
เป็นอย่างอื่นในระหว่างนี้) แต่นั่นก็เป็นเช่นนั้น ไม่ทำงานเช่นกัน
ผิดปกติพอเมื่อฉันเริ่มต้นgpg-agent
ด้วยตนเองจากเปลือกแล้วเริ่ม Thunderbird ดูเหมือนว่าจะสื่อสารกับgpg-agent
ดังที่แสดงด้านล่าง:
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
ฉันไม่เห็นผลลัพธ์ใด ๆ เลยถ้าฉันพยายามส่งอีเมลที่ลงชื่อและ / หรือเข้ารหัสแล้ว สิ่งนี้จะปรากฏขึ้นเมื่อธันเดอร์เบิร์ดเริ่มต้นขึ้นเท่านั้น
นอกจากนี้ฉันเพิ่ม/usr/bin/gpg-agent --daemon
คำสั่งเป็นแอปพลิเคชันเริ่มต้นในแผงแอปพลิเคชัน Gnome Startup แต่ก็ไม่ได้สร้างความแตกต่าง
ฉันคิดว่าฉันใช้การอัปเดตทั่วไปประมาณ 2/23 แต่ปัญหาไม่สามารถมองเห็นได้จนกว่าระบบจะเริ่มต้นใหม่ในวันที่ 2/24 ในสัปดาห์นี้ น่าเสียดายที่ฉันจำไม่ได้ว่ามีการอัปเดตแพ็คเกจใด แต่มีไม่มาก (ปกติฉันจะอัพเดทระบบอยู่เสมอ)
โปรดทราบว่าสิ่งนี้ได้รับการทำงานโดยไม่มีปัญหามานานหลายปีหรือประมาณจนกระทั่งประมาณ 2 วันที่ผ่านมา (ฉันเคยใช้การตั้งค่านี้ในพีซีเดสก์ทอปที่บ้านมาเป็นเวลา 4 ปี + โดยไม่มีปัญหา แต่พีซีที่ทำงานของฉันคือแล็ปท็อปและบางครั้งอูบุนตูก็ใช้งานไม่ได้เพราะมีเหตุผลที่ไม่รู้จัก ... )
เมื่อฉันพยายามเปิดอีเมลที่เข้ารหัสที่ฉันได้รับ (หรือร่างจดหมายที่บันทึกไว้ซึ่งถูกเข้ารหัสด้วย) ฉันได้รับข้อความแสดงข้อผิดพลาดเดียวกันเกี่ยวกับเรื่องgpg-agent
นี้ แต่จะถอดรหัสข้อความอีเมลหลังจากขอรหัสผ่านส่วนตัวสำหรับฉัน
ถาม: ฉันจะแก้ไขข้อผิดพลาดในการสื่อสารที่ทำให้ฉันไม่สามารถส่งอีเมลที่เซ็นชื่อหรือเข้ารหัสได้อย่างไร
ในการพิจารณาปัญหาได้รับการแก้ไขสถานการณ์ต้องกลับไปทำงานตามปกติโดยไม่มีข้อผิดพลาด ฯลฯ
ขอขอบคุณล่วงหน้าสำหรับความช่วยเหลือที่คุณสามารถให้เพื่อช่วยแก้ไขปัญหานี้
ขณะที่ฉันเขียนโพสต์นี้ฉันสังเกตเห็นข้อความต่อไปนี้จากgpg-agent
daemon ในเทอร์มินัล:
# ...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
สิ่งนี้ปรากฏขึ้นอย่างคาดไม่ถึงเนื่องจากฉันไม่ได้ขอให้ธันเดอร์เบิร์ดทำอะไรเป็นพิเศษในระหว่างนี้
ฉันอัปเดตจาก 15.04 -> 15.10 -> 16.04 และสามารถยืนยันได้ว่า Thunderbird 38.6 + Enigmail 1.9.1 ทำงานได้ตามปกติสำหรับฉัน ผลลัพธ์ของคำสั่งก็เป็นสิ่งที่ควรจะเป็น:
➜ ~ 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
ปล่อยออกมาจริงๆ คำถามที่พบบ่อยล้าสมัยและฉันไม่แน่ใจว่าตัวเลือกในการดูบันทึกการดีบักของอินิกเมลนั้นอยู่ที่ใดอีกต่อไป
Enigmail > Debugging Options > View Log
WARNING: The GNOME keyring manager hijacked the GnuPG agent
ดังนั้นฉันค่อนข้างมั่นใจว่าGnomeKeyringเกี่ยวข้องกัน echo | gpg2 --sign
เผยให้เห็นปัญหาของ CLI การปิดการใช้งาน gnome-keyring ที่น่าเศร้า (เป็นวิธีแก้ปัญหาเท่านั้น) ไม่ใช่ตัวเลือกสำหรับฉัน