Gentoo Linux GPG зашифровує належним чином файл, пропущений через параметр, але під час читання зі стандартного введення видає "Невідповідний ioctl для пристрою".


23

Я запускаю Gentoo Hardened з ядром 4.1.7-hardened-r1 і я намагаюся зашифрувати файл за допомогою GPG з сеансу оболонки, відкритого з SSH та зі DISPLAYзмінною відключеною, щоб використовувати чіткі прокльони для запиту пароля. За допомогою 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

Вам слід встановити змінну GPG_TTY, щоб вона працювала, як у цьому документі :

GPG_TTY=$(tty)
export GPG_TTY

Ці два рядки повинні бути у вашому .bashrc(припускаючи bash), тому вони запускаються щоразу, коли ви відкриваєте новий термінальний сеанс.

Однак є ще одне рішення: у bash ви можете запустити свій файл pvі зробити вигляд, що це файл, використовуючи підстановку процесу:

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

Таким чином, можливо, не буде ідеєю передавати речі програмам, які очікують додаткового вкладу. Це може працювати інакше, ніж очікувалося.


Чи є спосіб змінити чи виправити цю поведінку? Зараз я просто спробував таку саму команду читання з 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 Ви маєте рацію. Здається, що gpg відкривається /dev/ttyна Debian. Це, в моєму випадку, була версія 1.4; gpg отримав трохи капітального ремонту з тих пір. Такий підхід може бути відкинутий з якоїсь причини - можливо, ви захочете дізнатися більше самостійно (або це може бути певний патч Debian). Як таке, вам, мабуть, було б краще не розраховувати на це. Я викопаю сліди, щоб перевірити, що саме відбувається в новіших gpg (у мене 2.1).
TNW

Як не дивно, я знайшов рішення! Встановлення змінної GPG_TTY робить це для мене. Відповідь я оновлю відповідно.
TNW
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.