सूक्ति-कीरिंग ने $ SSH_AUTH_SOCK को कहां सेट किया है?


10

मैं gnome-keyringSSH एजेंट के रूप में छुटकारा पाने की प्रक्रिया में हूं ।

जो चीजें मैंने की हैं

  • घंटों तक इंटरनेट पर सर्च किया।
  • सामान बदल दिया और फिर से शुरू किया।
  • अंत में बस rmSSH से संबंधित सभी ऑटोस्टार्ट सामान को एड करें।

यही कारण है कि आखिरी बात जादुई काम के रूप में वहाँ है कोई और अधिक वहाँ एजेंट के लिए सॉकेट:

/run/user/[uid]/keyring/ssh

मुसीबत

शेष समस्या यह है कि है बावजूद मेरी अद्भुत ऊपर उल्लिखित परिणाम प्राप्त करने की, कुछ में gnome-keyringअभी भी स्थापित करने पर जोर SSH_AUTH_SOCKकरने के लिए अब गैर मौजूदा ऊपर सॉकेट। यह लाश की तरह है, ये चीजें कभी नहीं मरती हैं।

सवाल

वह चर क्या स्थापित कर रहा है और यह कहाँ किया जाता है?

नुकसान

  • मैं यह नहीं पूछ रहा हूं कि मैं उस चर को दूसरे मूल्य पर कैसे रीसेट कर सकता हूं।
  • मैं यह नहीं पूछ रहा हूं कि मैं उस मूल्य प्रणाली को कैसे सेट कर सकता हूं या शेल कॉन्फ़िगरेशन फ़ाइल में।
  • मैं कुछ init-script वूडू इन्कंटेशंस को फ्रीज, सेट, रीसेट, अनसेट या कुछ भी बदलने के लिए नहीं कह रहा हूं ।
  • मैं इस बात की सलाह नहीं दे रहा हूं कि चीज़ को कैसे अनइंस्टॉल किया जाए: मुझे अभी भी अपने पासवर्ड की आवश्यकता है और यह Gnome में सबसे एकीकृत और पॉलिश पासवर्ड मैनेजर लगता है।

मैं उस चीज को निष्क्रिय कर देना चाहता हूं, जैसा उसे होना चाहिए।


2
सूक्ति-कीरिंग की स्थापना रद्द करें?
रदिमेयेर

1
@rudimeier: मुझे अभी भी अपने पासवर्ड के लिए सूक्ति-कीरिंग की आवश्यकता है और जहाँ तक मुझे पता है कि Gnome में अधिक पॉलिश और एकीकृत कुछ भी नहीं है।
JohnW

@rudimeier भी मदद करने के लिए प्रतीत नहीं होता है। मैंने इसे आजमाया है।
एंड्रे बोरी

जवाबों:


8

मुझे लगता है - आप Wayland का उपयोग कर रहे हैं। मैं आज इस समस्या में भाग गया और मुझे लगा कि मैं समाधान साझा करूंगा।

सूक्ति-सत्र में SSH_AUTH_SOCKकिसी कारण से अंडरलैंड के लिए हार्डकोड ओवरराइड होता है । निम्नलिखित वचन देखें: https://github.com/GNOME/gnome-session/commit/a8896ccad65583885735a04205351f48a42f29ae

वर्कअराउंड? इस व्यवहार को अक्षम करने के लिए एक पर्यावरण चर सेट करें GSM_SKIP_SSH_AGENT_WORKAROUND=1:। यह शॉर्ट-सर्किट पर्यावरण सेटिंग कोड।

उन लोगों के लिए जो यह पाते हैं कि ssh-agent को कॉन्फ़िगर करने का प्रयास कर रहे हैं: ssh-agent के लिए मेरे systemd इकाई फ़ाइल में, मेरे पास निम्न पंक्ति है:

ExecStartPost=/usr/bin/bash -c "/usr/bin/systemctl --user set-environment SSH_AUTH_SOCK=$SSH_AUTH_SOCK GSM_SKIP_SSH_AGENT_WORKAROUND=1"

पूरी फ़ाइल इस तरह दिखती है:

[Unit]
Description=SSH Agent
IgnoreOnIsolate=true

[Service]
Type=forking
Environment=SSH_AUTH_SOCK=%t/ssh-agent.socket
ExecStart=/usr/bin/ssh-agent -a $SSH_AUTH_SOCK
ExecStartPost=/usr/bin/bash -c "/usr/bin/systemctl --user set-environment SSH_AUTH_SOCK=$SSH_AUTH_SOCK GSM_SKIP_SSH_AGENT_WORKAROUND=1"

[Install]
WantedBy=default.target

धन्यवाद! उबंटू v17.10 आर्टफुल एर्डवार्क पर, बस export GSM_SKIP_SSH_AGENT_WORKAROUND=1मेरे ~ / .profile को जोड़ने और रिबूट करने से मेरा कॉन्फ़िगरेशन तय हो गया जो पहले v17.04 पर काम किया था।
स्टीफन नेदिज़ेल्स्की

यह सिर्फ वेनलैंड की तुलना में अधिक प्रभावित करता है, जब मैं gnome-flashback + i3 का उपयोग करने की कोशिश कर रहा हूं तो मैं इसमें भाग रहा हूं।
ड्रैगन 88 --88

कृपया ध्यान दें कि हैक हैक Gnome 3.24 या पुराने ( wiki.archlinux.org/index.php/GNOME/… ) तक काम करता है
पाब्लो ओल्मोस डे एगुइलेरा सी।

5

(ओपी का वातावरण ज्ञात नहीं है, इसलिए यहां दिए गए मार्ग मेरे उबंटू मशीन पर पाए गए हैं)

Gnome-keyring SSH_AUTH_SOCK को कहां सेट करता है?

शीर्षक में मुख्य प्रश्न का उत्तर देने के लिए, SSH_AUTH_SOCK /usr/share/upstart/sessions/gnome-keyring-ssh.confनिम्नलिखित के साथ सूक्ति-कुंजीकरण द्वारा निर्धारित किया गया है:

initctl set-env --global SSH_AUTH_SOCK=$SSH_AUTH_SOCK

initctlमैनुअल का हवाला देते हुए :

initctl set-env VARIABLE[=VALUE]

जॉब एनवायरनमेंट टेबल में एक वैरिएबल को जोड़ता या अपडेट करता है। इस तरह से सेट किए गए चर एक नौकरी के लिए सभी बाद की शुरुआत प्रक्रियाओं पर लागू होंगे।

-g, --global

वैश्विक नौकरी पर्यावरण तालिका और सभी मौजूदा चल रही नौकरी पर्यावरण तालिकाओं पर काम करते हैं।

SSH_AUTH_SOCK पहले स्थान पर कहां से आता है?

initctlआदेश ऊपर तथ्य यह है कि वातावरण चर SSH_AUTH_SOCK पहले से मौजूद है के लिए सशर्त है। तो, क्या यह चिकन और अंडे की स्थिति है? यह क्या सेट करता है?

SSH_AUTH_SOCK शुरू में मूल ssh-Agent द्वारा निर्धारित किया जाता है जिसे X सत्र की शुरुआत में शुरू किया जाता है। मैनुअल का हवाला देते हुए:

एक UNIX- डोमेन सॉकेट बनाया गया है और इस सॉकेट का नाम SSH_AUTH_SOCKपर्यावरण चर में संग्रहीत किया गया है। सॉकेट केवल वर्तमान उपयोगकर्ता के लिए सुलभ है।

लेकिन, gnome-keyring ssh घटक क्या करता है, मौजूदा ssh- एजेंट को स्थानापन्न करता है। इसलिए यह SSH_AUTH_SOCK को अपने स्वयं के सॉकेट से अधिलेखित करता है /run/user/.../keyring-.../sshताकि एप्लिकेशन उससे बात करें, न कि ssh- Agent के पास ।

इसे कैसे निष्क्रिय करना है

अब, चलो अंतिम वाक्य का जवाब दें "मैं उस चीज़ को अक्षम करना चाहता हूं"। ओपी क्या चाहता है कि SSH_AUTH_SOCK की ओवर राइटिंग को gnome-keyring में ssh घटक द्वारा निष्क्रिय कर दिया जाए। वे शुरू में ssh- एजेंट द्वारा निर्धारित "सही" SSH_AUTH_SOCK चर प्राप्त करना चाहते हैं।

Ssh घटक को ऊपर उल्लिखित उसी स्टार्टअप स्क्रिप्ट द्वारा शुरू किया गया है ( /usr/share/upstart/sessions/gnome-keyring-ssh.conf) लेकिन एक शर्त पर: X-GNOME-Autostart-enabled=falseइन फ़ाइलों में से किसी एक में स्ट्रिंग नहीं मिलनी चाहिए:

  • (सिस्टम-वाइड कॉन्फिडेंस) /etc/xdg/autostart/gnome-keyring-ssh.desktop
  • (उपयोगकर्ता विश्वास) ~/.config/autostart/gnome-keyring-ssh.desktop

इसलिए, यदि आप इसे अक्षम करना चाहते हैं, तो आपको बस X-GNOME-Autostart-enabled=falseइन फ़ाइलों में से किसी एक में एक पंक्ति जोड़ना होगा, अधिमानतः आपके गृह निर्देशिका में एक।


मैंने गनोम कीरिंग के लिए ऑटोस्टार्ट प्रविष्टियों को अक्षम करने की कोशिश की है और ऐसा लगता है कि चर अभी भी है, लेकिन एक गैर-मौजूदा सॉकेट की ओर इशारा करता है (इसलिए कीरिंग को अक्षम करने से काम होता है, लेकिन चर कहीं और सेट होता है)। मैं एक आर्चलिनक्स मशीन चला रहा हूं ताकि कोई अपस्टार्ट न हो और सिस्टमड में ऐसा कुछ भी स्पष्ट न हो जो चर सेट करे ..
André Borie

@ AndréBorie मुझे पता है कि न तो आर्क और न ही सिस्टमड। सॉकेट पथ का नया मान क्या है? मेरे macihne पर, ssh- एजेंट आमतौर पर इसे सेट करता है /tmp/ssh-XXX/agent.PID। आपकी प्रक्रिया सूची में ssh- एजेंट अभी भी है?
15:30 पर xhienne

मूल प्रश्न में मार्ग जैसा है। कोई एसएसएच एजेंट नहीं हैं और न ही कीरिंग चल रही है।
आंद्रे बोरी

यह उत्तर वास्तव में पुराना है, लेकिन मुझे आशा है कि आप मेरी भी मदद कर सकते हैं unix.stackexchange.com/questions/422574/…
Ojs

3

https://wiki.archlinux.org/index.php/GNOME/Keyring#Disable_keyring_daemon_components

यदि आप एक वैकल्पिक SSH एजेंट (जैसे ssh- एजेंट या gpg- एजेंट) चलाना चाहते हैं, तो आपको GNOME कीरिंग के ssh घटक को निष्क्रिय करने की आवश्यकता है। ऐसा स्थानीय-स्थानीय तरीके से करने के लिए:

mkdir ~/.config/autostart
cp /etc/xdg/autostart/gnome-keyring-ssh.desktop ~/.config/autostart/ &&
echo 'Hidden=true' >> ~/.config/autostart/gnome-keyring-ssh.desktop

फिर लॉग आउट करें।

हल्के ढंग से संपादित, स्पष्ट रूप से बेकार उपयोग को हटाते हुए printf


यह मेरे लिए Ubuntu 14.04 पर भी काम करता है।
अंक

यह 3.24 और नए के लिए सच है।
पाब्लो ओलमोस डे एगुइलेरा सी।

0

ग्नोम 3.18 के अनुसार, सॉकेट अंदर संग्रहीत किया गया प्रतीत होता है ~/.cache/keyring-(some random string)/ssh

एक अनुमान में, यह सूक्ति-कीरिंग-डेमन द्वारा निर्धारित किया जा रहा है।

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