Gentoo लिनक्स GPG मानक के माध्यम से पारित एक फ़ाइल को ठीक से एन्क्रिप्ट करता है, लेकिन मानक इनपुट के लिए पढ़ते समय "डिवाइस के लिए अनुपयुक्त ioctl" को फेंक देता है


23

मैं कर्नेल 4.1.7-कठोर-आर 1 के साथ 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

आपको इस दस्तावेज़ में काम करने के लिए yout GPG_TTY चर सेट करना चाहिए :

GPG_TTY=$(tty)
export GPG_TTY

उन दो पंक्तियों को आपके .bashrc(bash मानकर) माना जाता है , इसलिए वे हर बार जब आप नया टर्मिनल सत्र खोलते हैं तो चलाए जाते हैं।

एक और उपाय है, हालाँकि: bash में आप अपने को चला सकते हैं pvऔर यह दिखावा कर सकते हैं कि यह एक फाइल है, प्रक्रिया प्रतिस्थापन का उपयोग करके:

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

जैसे, अतिरिक्त इनपुट की अपेक्षा करने वाले कार्यक्रमों के लिए पाइप-इन चीजों के लिए यह एक अच्छा विचार नहीं हो सकता है। यह उम्मीद से अलग काम कर सकता है।


क्या इस व्यवहार को बदलने या ठीक करने का कोई तरीका है? अभी मैंने डेबियन पर ठीक उसी रीड-से-स्टाइन कमांड की कोशिश की और जीपीजी ने मेरा पासवर्ड मांगा।
राक

@RAKK आप परिणामस्वरूप फ़ाइल को डिक्रिप्ट कर सकते हैं, हालांकि?
TNW

हाँ, डेबियन पर एक अड़चन के बिना। कहा जाता है dsfargeg, यादृच्छिक डेटा के साथ एक छोटी फ़ाइल बनाएँ , इसे एन्क्रिप्ट करें pv dsfargeg | gpg -o dsfargeg.gpg --symmetric, जब संकेत दिया जाए, gpg -o dsfargeg.gpg.dec --decrypt dsfargeg.gpgपासवर्ड दर्ज करें, आउटपुट को डिक्रिप्ट करें , अपना पासवर्ड दर्ज करें, और मूल और डिक्रिप्ट की गई फ़ाइल की तुलना करें sha256sum dsfargeg dsfargeg.gpg.dec। दोनों हैश एक ही होंगे।
राक

@ आरकेके तुम सही हो। ऐसा लगता है कि /dev/ttyडेबियन पर gpg खुल रहा है। यह संस्करण 1.4 था, हालांकि, मेरे मामले में; gpg के बाद से ओवरहाल का एक सा हो गया। वह दृष्टिकोण किसी कारण से गिरा दिया गया हो सकता है - आप अपने दम पर अधिक पता लगाना चाहते हैं (या यह कुछ डेबियन विशिष्ट पैच हो सकता है)। इस तरह, यह शायद आपके लिए बेहतर होगा कि आप इस पर भरोसा न करें। मैं नए निशान में क्या हो रहा है की जाँच करने के लिए (मैं 2.1 मिल गया है) की जाँच करने के लिए, निशान में चारों ओर खुदाई करूँगा।
TNW

अजीब तरह से, मैं एक समाधान मिल गया है! GPG_TTY वैरिएबल सेट करना मेरे लिए है। मैं उसी हिसाब से जवाब अपडेट करूंगा।
TNW
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.