मैं कमांड लाइन से दूरस्थ रूप से किचेन तक कैसे पहुंच सकता हूं?


23

मैं अपने किचेन में विभिन्न पासवर्ड (जैसे रिमोट ईमेल सर्वर) स्टोर कर रहा हूं। कमांड लाइन से, जब स्थानीय रूप से लॉग इन किया जाता है, तो मैं इन्हें पुनः प्राप्त कर सकता हूं:

security unlock-keychain ~/Library/Keychains/login.keychain
<enter password>
security find-internet-password -s smtp.gmail.com -a foo@gmail.com
<dumps keychain attributes, not including password>
security find-internet-password -s smtp.gmail.com -a foo@gmail.com -g
<dumps keychain attributes, including password>

हालाँकि, दूर से चलाने पर परिणाम प्राप्त नहीं किया जा सकता (बॉक्स में कहीं और से ssh'ing):

security unlock-keychain ~/Library/Keychains/login.keychain
<enter password>
security find-internet-password -s smtp.gmail.com -a foo@gmail.com
<dumps keychain attributes, not including password>
security find-internet-password -s smtp.gmail.com -a foo@gmail.com -g
<nothing printed, to stdout or stderr>

इसके अलावा, अंतिम कमांड का रिटर्न मान (-g) 36 है।

मैंने setएक स्थानीय लॉगिन से आउटपुट डंप किया है और इसकी तुलना रिमोट से की है, और लापता पर्यावरण चर हैं:

Apple_PubSub_Socket_Render
GPG_AGENT_INFO
SECURITYSESSIONID
TERM_PROGRAM
TERM_PROGRAM_VERSION
TERM_SESSION_ID
XPC_FLAGS
XPC_SERVICE_NAME

मुझे किसकी याद आ रही है? मेरे पास SSH_AUTH_SOCKएक वैध मान है (से लौटा ssh-agent)।


जवाबों:


11

इस प्रजनन की जांच के लिए में, मैं नोटिस मैं अपने कीचेन करने के लिए कॉन्फ़िगर है कि "पहुँच अनुमति देने से पहले की पुष्टि करें।" तो जब मैं प्रदर्शन find-internet-passwordके साथ स्थानीय स्तर पर -gझंडा, मैं एक संवाद बॉक्स बताते हुए मिल सुरक्षा "smtp में संग्रहीत अपने गोपनीय जानकारी का उपयोग करना चाहता है। gmail.com ”अपने किचेन में। अगर मैं "अनुमति दें" पर क्लिक करता हूं, तो यह काम करता है, अगर मैं "इनकार" पर क्लिक करता हूं तो यह sshरिटर्न कोड के साथ मामले में समान रूप से विफल हो जाता है 51पहुँच पुष्टिकरण संवाद

जब मैं कमांड को दूरस्थ रूप से आज़माता हूं ssh, तो -gतुरंत विफलता का परिणाम होता है, उस स्थिति के साथ 36जो आप रिपोर्ट कर रहे हैं।

मुझे संदेह है कि ऐसा इसलिए है क्योंकि जब आप sshअंदर होते हैं, तो सिस्टम के पास डायलॉग बॉक्स को पॉप अप करने का कोई तरीका नहीं होता है जिससे आप यह पुष्टि कर सकते हैं कि आप securityकमांड को इस जानकारी तक पहुंचने की अनुमति देना चाहते हैं।

कमांड को sshस्थानीय रूप से चलाते समय "ऑलवेज अलाउन" विकल्प पर क्लिक करके कनेक्ट होने के दौरान मैं काम करने में सक्षम था । यह किचेन में अनुमतियों को अपडेट करता है ताकि मुझे संवाद (यहां तक ​​कि स्थानीय रूप से) का जवाब देने की आवश्यकता न हो, जो इसे दूरस्थ रूप से भी काम करने की अनुमति देता है।

मुझे नहीं पता कि यह आपके लिए पूरी तरह से मददगार होगा, हालांकि, जैसा कि मुझे लगता है कि इसका मतलब है कि आपको securityप्रोग्राम को किसी भी किचेन आइटम तक पहुंच प्रदान करने की आवश्यकता होगी जिसे आप दूरस्थ रूप से एक्सेस करना चाहते हैं। ऐसा करने के लिए एक स्क्रिप्ट लिखना संभव हो सकता है?

यदि आप इसे मैन्युअल रूप से प्रयोग कर रहे हैं और बाद में इस एक्सेस को रद्द करना चाहते हैं, तो आप किचेन एक्सेस में प्रभावित आइटम पर जा सकते हैं, गेट इंफो चुनें और एक्सेस कंट्रोल टैब देखें। आपको securityवहां एक प्रविष्टि दिखाई देगी , जिसे आप हटा सकते हैं:अभिगम नियंत्रण संवाद


मैंने वही काम किया है - "सुरक्षा" कमांड को "हमेशा एक्सेस की अनुमति" सूची में जोड़ा गया है (जो कि स्थानीय रूप से कमांड जारी करते समय दिखाई देने वाले पॉपअप पर "हमेशा अनुमति दें" पर क्लिक करके भी किया जाता है), लेकिन मैं अभी भी नहीं कर सकता इसके बाद चाबी का गुच्छा आइटम का उपयोग करें। कहीं न कहीं एक और सेटिंग होनी चाहिए, जिसे बदलना होगा, लेकिन मुझे यह नहीं मिल रहा है।
ईथर

1
अहाहा - यह वास्तव में काम करता है , लेकिन किसी को प्रभावी होने के लिए किचेन में सेटिंग्स बदलने के बाद एक नए सत्र के साथ लॉग इन करना होगा। हुर्रे! (मैं कभी इस सवाल का जवाब जोड़ूंगा कि क्या मुझे कभी पता चलता है कि एक्सेस विशेषाधिकारों को दूरस्थ रूप से कैसे बदला जाए, लेकिन बाद के रिमोट उपयोग के लिए स्थानीय रूप से अग्रिम में चीजें सेट करना अभी के लिए स्वीकार्य है।)
ईथर

2
यह भी ध्यान दें - यह security unlock-keychain ~/Library/Keychains/login.keychainउस दूरस्थ सत्र में भी आवश्यक है जहाँ आप किचेन का उपयोग करने का प्रयास कर रहे हैं। यह आपके पासवर्ड के लिए संकेत देगा, इसलिए आप इसे स्क्रिप्ट में नहीं कर सकते। पासवर्ड के बिना इसे प्राप्त करने के तरीके हो सकते हैं, लेकिन यह इस सवाल के दायरे से बाहर है :)
ईथर

किसी को पता है कि क्या मैं सुरक्षा अनलॉक-चाबी का गुच्छा के लिए कमांड लाइन में पासवर्ड दर्ज कर सकता हूं?
टॉफटिम

1
@ अन्य यदि किचेन डिफ़ॉल्ट /Users/[user]/Library/Keychains/पथ में है तो आप पूर्ण पथ को छोड़ सकते हैं और बस के साथ जा सकते हैं login.keychain
सॉलगर

5

security -i unlock-keychain

मेरे लिए मैकओएस 10.13.4 हाई सिएरा में काम करता है।

कार्तिक के समाधान की जांच के बाद, मुझे यह पता चला। -I कमांड को इंटरएक्टिव बनाता है और आपके पासवर्ड के लिए टर्मिनल में आपको संकेत देता है।


3

जब तक सुरक्षा चाबी का गुच्छा डिफ़ॉल्ट स्थान पर है आप इसे अनलॉक करने के लिए नीचे कमांड चला सकते हैं। यह पासवर्ड के लिए संकेत नहीं देता है। यह दूर से काम करता था।

security unlock-keychain -p "enter password"


अलग पूछने के लिए आपका स्वागत है! हम सर्वोत्तम उत्तर खोजने का प्रयास कर रहे हैं और वे उत्तर इस बात की जानकारी प्रदान करेंगे कि वे सर्वश्रेष्ठ क्यों हैं। उत्तर स्व-सम्‍मिलित होने चाहिए ताकि आप यह समझ सकें कि आपके द्वारा दिया गया उत्तर समस्या का समाधान करेगा या वहाँ से दूसरों की तुलना में बेहतर है। सहायक जानकारी के रूप में लिंक प्रदान करना भी ओपी और अन्य लोगों की मदद कर सकता है, अपने लिए अतिरिक्त जानकारी पा सकता है। देखें जवाब कैसे कैसे एक गुणवत्ता उत्तर प्रदान करने पर। - समीक्षा से
fsb
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.