GPoo Gentoo Linux mã hóa chính xác một tệp được truyền qua tham số nhưng ném ioctl không phù hợp cho thiết bị, khi đọc từ đầu vào tiêu chuẩn


23

Tôi đang chạy Gentoo Hardened với kernel 4.1.7-hardened-r1 và tôi đang cố mã hóa một tệp bằng GPG từ phiên shell được mở từ SSH và với DISPLAYbiến bị vô hiệu hóa để sử dụng lời nguyền pinentry để nhắc mật khẩu. Sử dụng gpg -o file.gpg --symmetric filetôi có thể mã hóa tốt. Sử dụng pv file | gpg -o file.gpg --symmetrictôi nhận được thông báo lỗi sau:

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

Câu trả lời:


41

Bạn nên đặt biến GPG_TTY cho nó hoạt động, như trong tài liệu này :

GPG_TTY=$(tty)
export GPG_TTY

Hai dòng đó được cho là nằm trong .bashrc(giả sử bash) của bạn, vì vậy chúng sẽ chạy mỗi khi bạn mở phiên cuối mới.

Tuy nhiên, có một giải pháp khác: trong bash, bạn có thể chạy pvvà giả vờ đó là một tệp, sử dụng thay thế quy trình:

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

Vì vậy, nó có thể không phải là một ý tưởng tốt để đưa các thứ vào các chương trình mong đợi đầu vào bổ sung. Nó có thể làm việc khác với dự kiến.


Có cách nào để thay đổi hoặc sửa chữa hành vi này? Ngay bây giờ tôi vừa thử chính xác lệnh đọc-từ-stdin trên Debian và GPG đã hỏi mật khẩu của tôi.
RAKK

@RAKK Bạn có thể giải mã tập tin kết quả, mặc dù?
TNW

Có, không có một trở ngại nào trên Debian. Tạo một tệp nhỏ với dữ liệu ngẫu nhiên được gọi dsfargeg, mã hóa nó pv dsfargeg | gpg -o dsfargeg.gpg --symmetric, nhập mật khẩu khi được nhắc, giải mã đầu ra gpg -o dsfargeg.gpg.dec --decrypt dsfargeg.gpg, nhập mật khẩu của bạn và so sánh tệp gốc và tệp được giải mã với sha256sum dsfargeg dsfargeg.gpg.dec. Cả hai băm sẽ giống nhau.
RAKK

@RAKK Bạn nói đúng. Có vẻ như gpg đang mở /dev/ttytrên Debian. Đây là phiên bản 1.4, tuy nhiên, trong trường hợp của tôi; gpg đã có một chút đại tu kể từ đó. Cách tiếp cận đó có thể đã bị loại bỏ vì một số lý do - bạn có thể muốn tự mình tìm hiểu thêm (hoặc đây có thể là một bản vá cụ thể của Debian). Như vậy, có lẽ tốt hơn là bạn không nên tin vào nó. Tôi sẽ đào xung quanh theo dõi, để kiểm tra chính xác những gì đang xảy ra trong gpg mới hơn (Tôi đã có 2.1).
TNW

Thật kỳ lạ, tôi đã tìm thấy một giải pháp! Đặt biến GPG_TTY sẽ giúp tôi. Tôi sẽ cập nhật câu trả lời phù hợp.
TNW
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.