मैं Fedora 22 चला रहा हूं। मैं अपने SSH कनेक्शन को अपने PGP प्रमाणीकरण उपकुंजी का उपयोग करके प्रमाणित करने की कोशिश कर रहा हूं, जो मेरे Yubikey Neo पर स्थित है।
मेरे पास निम्न के रूप में gpg- एजेंट को शुरू करने वाली एक systemd इकाई है:
/usr/bin/gpg-agent --homedir=%h/.gnupg --daemon --use-standard-socket
और मैंने विन्यास में SSH समर्थन को सक्षम किया है:
enable-ssh-support
pinentry-program /usr/bin/pinentry-gtk
सेटअप के अन्य भागों को जोड़ने शामिल keygrip करने के लिए अपने कुंजी ~/.gnupg/sshcontrol
, फ़ाइल मेरी जोड़ने सार्वजनिक कुंजी रिमोट होस्ट को और घोषणा वातावरण चर ।
विश्व स्तर पर विभिन्न लॉग को देखकर लगता है कि सेटअप काम कर रहा है, मैं देख सकता हूं कि एसएसएच कुंजी पाता है लेकिन वास्तव में इसके साथ हस्ताक्षर करने में विफल हो रहा है। यदि मैं लॉग से gpg-agent
देखता हूं, तो मैं देख सकता हूं कि यह pinentry
प्रोग्राम लॉन्च करने में विफल हो रहा है और इसलिए, पिन कोड के लिए अनुरोध नहीं कर रहा है:
2015-07-22 23:23:28 gpg-agent[6758] DBG: error calling pinentry: Ioctl() inappropriate for a device <Pinentry>
2015-07-22 23:23:28 gpg-agent[6758] DBG: chan_8 -> BYE
2015-07-22 23:23:28 gpg-agent[6758] DBG: chan_7 -> CAN
2015-07-22 23:23:28 gpg-agent[6758] DBG: chan_7 <- ERR 100663573 The IPC call was canceled <SCD>
2015-07-22 23:23:28 gpg-agent[6758] smartcard signing failed: Ioctl() inappropriate for a device
2015-07-22 23:23:28 gpg-agent[6758] ssh sign request failed: Ioctl() inappropriate for a device <Pinentry>
हम यहां देखते हैं कि जब एसएसएच के साथ संयोजन में उपयोग किया जाता है, तो पिनेंट्री कॉल करते समय कुछ ioctl कॉल विफल हो रहा है। हालाँकि अगर मैं निम्नलिखित चलाता हूँ:
$ echo "Test" | gpg2 -s
पिन विंडो पॉप अप कर रहा है और यह सब ठीक काम कर रहा है।
क्या आप मुझे यह समझने में मदद कर सकते हैं कि इस सेटअप और SSH के साथ क्या हो रहा है?
tar
के लिएgpg2
मैक ओएस एक्स और पर विगो के जवाब मेरे लिए यह संकल्प लिया।