2
วิธีรับ pinentry-curses เพื่อเริ่มต้น tty ที่ถูกต้อง?
ฉันใช้gpg-agentสำหรับการจัดการทั้งอัตลักษณ์ของ PGP e SSH เอเจนต์เริ่มต้นด้วยสคริปต์เช่นนี้ gpg_agent_env="$XDG_CACHE_HOME/gpg-agent.env" export GPG_TTY="$(tty)" if ! ps -U "$USER" -o ucomm | grep -q gpg-agent; then eval "$({gpg-agent --daemon | tee $gpg_agent_env} 2> /dev/null)" else source "$gpg_agent_env" 2> /dev/null fi ซึ่งมีที่มาเมื่อใดก็ตามที่ฉันเรียกใช้เปลือกโต้ตอบ ทุกอย่างทำงานได้ดีกับการตั้งค่านี้ แต่มีปัญหา สมมติว่าฉัน: เปิดเทอร์มินัล (เรียกตัวแทนในพื้นหลัง) และเริ่มทำงาน หลังจากที่ในขณะที่เปิดสถานีที่สอง ดำเนินการที่ต้องป้อนวลีรหัสผ่านในเทอร์มินัลที่สอง ณ จุดนี้gpg-agentจะเริ่มpinentry-cursesพร้อมท์ข้อความรหัสผ่าน แต่จะทำเช่นนี้ในเทอร์มินัลแรกซึ่งส่งผลให้เอาต์พุตผสมกับสิ่งที่กำลังทำงานอยู่ (โดยปกติจะเป็นตัวแก้ไขข้อความ) โดยไม่มีวิธีการเริ่มโปรแกรมหรือหยุด pinentry (เริ่มใช้ …