แนวทางปฏิบัติที่ดีที่สุดสำหรับ SSH, tmux & GnuPG Agent


12

ฉันกำลังพยายามรวมซอฟต์แวร์เข้ารหัสของฉันเข้ากับ GnuPG และฉันพบปัญหาที่ทำให้สับสน

unitsprimary ของฉันคือเซิร์ฟเวอร์หัวขาดและฉันทำงานเฉพาะใน tmux ไม่มีเซสชัน X ดังนั้นฉันจึงกำหนดค่า gpg-agent ให้ใช้ pinentry-curses ฉันได้กำหนดค่า gpg-agent ให้เรียกเข้าสู่ระบบด้วยการจำลอง ssh-agent ด้วยสคริปต์นี้:

if pgrep -u "${USER}" gpg-agent >/dev/null 2>&1; then
    eval `cat $gnupginf`
    eval `cut -d= -f1 $gnupginf | xargs echo export`
else              
    eval `gpg-agent -s --enable-ssh-support --daemon`
fi

ฉันได้เพิ่มคีย์ ssh ของฉันไปที่ gpg-agent แล้ว แต่เมื่อฉันลองเซสชัน ssh อื่นคำสั่งจะหยุดทำงาน

ฉันได้ค้นพบว่าถ้าฉันฆ่า gpg-agent และสร้างเชลล์ล็อกอินใหม่เอเจนต์จะทำงานตามที่ควร (เรียก pinentry-curses แล้วทำงานเหมือน ssh-agent)

อย่างไรก็ตามถ้าฉันสร้างเชลล์ล็อกอินอีกอัน (โดยพูดเปิดป๊อปอัพ tmux บานหน้าต่างอื่น) และพยายาม ssh คำสั่งแฮงค์และหน้าต่าง pinentry-curses ถูกพิมพ์ทับเนื้อหาของล็อกอินเชลล์ที่เปิดเอเจนต์ในตอนแรก

นอกจากนี้หากฉันปิดเชลล์ที่เปิดตัวเอเจนต์ตอนแรกพินเนอร์ - แชสส์ถูกเรียกใช้อยู่แล้วและทำให้เกิดการวนซ้ำของ cpu-crippling infinite (ข้อผิดพลาดที่รู้จักดูhttp://bugs.debian.org/cgi-bin/bugreport.cgi?bug=559936 )

โดยพื้นฐานแล้วฉันต้องการทราบว่าจะเปลี่ยนแปลงอะไรเกี่ยวกับการตั้งค่าของฉันเพื่อให้ตัวแทน GnuPG ทำงานได้อย่างราบรื่นเหมือนตัวแทน ssh ขอบคุณสำหรับความช่วยเหลือใด ๆ !

คำตอบ:


4

ปรากฎว่าอันนี้เรียบง่ายอย่างไม่น่าเชื่อ แทนที่จะใช้สคริปต์นั้นฉันเพียงแค่ลบตัวเลือก "--agents" ออกจากสคริปต์เรียกใช้พวงกุญแจเก่า (แนะนำที่นี่ )

สิ่งนี้ทำให้โปรแกรม Keychain หาไฟล์ทั้ง ssh-agent และ gpg-agent ตอนนี้ระบบเข้ารหัสของฉันทำงานได้อย่างราบรื่นแม้ในขณะที่พึ่งพาตัวแทนทั้งสองประเภท

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.