Gentoo Linux GPG เข้ารหัสไฟล์ที่ส่งผ่านพารามิเตอร์อย่างถูกต้อง แต่จะส่ง“ ioctl ที่ไม่เหมาะสมสำหรับอุปกรณ์” ออกมาอย่างถูกต้องเมื่ออ่านจากอินพุตมาตรฐาน


23

ฉันกำลังใช้ Gentoo Hardened ด้วยเคอร์เนล 4.1.7-hardened-r1 และฉันพยายามเข้ารหัสไฟล์โดยใช้ GPG จากเชลล์เซสชันที่เปิดจาก SSH และDISPLAYปิดการใช้งานตัวแปรเพื่อใช้ pinentry-curses สำหรับรหัสผ่าน ใช้gpg -o file.gpg --symmetric fileฉันสามารถเข้ารหัสได้ดี ใช้pv file | gpg -o file.gpg --symmetricฉันได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้:

gpg-agent[30745]: command get_passphrase failed: Inappropriate ioctl for device

คำตอบ:


41

คุณควรตั้งค่าตัวแปร yout GPG_TTY เพื่อให้ทำงานได้เช่นเดียวกับในเอกสารนี้ :

GPG_TTY=$(tty)
export GPG_TTY

ทั้งสองบรรทัดนี้ควรอยู่ใน.bashrc(สมมติว่าทุบตี) ดังนั้นพวกเขาจะทำงานทุกครั้งที่คุณเปิดเซสชันเทอร์มินัลใหม่

มีวิธีแก้ไขปัญหาอื่น: ในทุบตีคุณสามารถเรียกใช้ของคุณpvและแกล้งทำเป็นไฟล์โดยใช้กระบวนการแทน:

gpg -o file.gpg --symmetric <(pv file)

ดังนั้นจึงไม่ใช่ความคิดที่ดีที่จะใช้สิ่งที่เป็นประโยชน์กับโปรแกรมที่คาดว่าจะมีการป้อนข้อมูลเพิ่มเติม มันสามารถทำงานแตกต่างกว่าที่คาดไว้


มีวิธีใดที่จะเปลี่ยนแปลงหรือแก้ไขพฤติกรรมนี้ ตอนนี้ฉันเพิ่งลองคำสั่ง read-from-stdin เดียวกันบน Debian และ GPG ขอรหัสผ่านของฉัน
RAKK

@RAKK คุณสามารถถอดรหัสไฟล์ที่เป็นผลลัพธ์ได้หรือไม่?
TNW

ใช่โดยไม่ต้องผูกปมกับ Debian สร้างไฟล์เล็ก ๆ ที่มีข้อมูลแบบสุ่มเรียกว่าdsfargegเข้ารหัสด้วยpv dsfargeg | gpg -o dsfargeg.gpg --symmetricใส่รหัสผ่านเมื่อได้รับแจ้งถอดรหัสการส่งออกที่มีการใส่รหัสผ่านของคุณและเปรียบเทียบต้นฉบับและไฟล์ถอดรหัสด้วยgpg -o dsfargeg.gpg.dec --decrypt dsfargeg.gpg sha256sum dsfargeg dsfargeg.gpg.decแฮชทั้งสองจะเหมือนกัน
RAKK

@RAKK คุณพูดถูก ดูเหมือนว่า gpg จะเปิด/dev/ttyใน Debian นี่เป็นรุ่น 1.4 แต่ในกรณีของฉัน gpg ได้รับการยกเครื่องเล็กน้อยตั้งแต่ วิธีการนั้นอาจลดลงด้วยเหตุผลบางประการ - คุณอาจต้องการทราบข้อมูลเพิ่มเติมด้วยตัวเอง (หรืออาจเป็นแพทช์เฉพาะของ Debian) ดังนั้นจึงเป็นการดีที่คุณจะไม่นับ ฉันจะขุดไปตามร่องรอยเพื่อตรวจสอบสิ่งที่เกิดขึ้นจริงใน gpg ที่ใหม่กว่า (ฉันมี 2.1)
TNW

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