ssh-agent -t
[1] पर मौजूदा फीचर के बारे में कुछ संक्षिप्त चर्चाएं हैं , और डेबिन-डेवेल [२] पर २००१ तक एक पोस्ट थी जो निष्क्रियता के समय की विशेषता के लिए काम कर रही थी। पेजेंट के लिए SE [3] पर इसी तरह की चर्चा है।
मुझे आश्चर्य है कि बाकी ग्रह किस तरह से ssh कीज़ की रक्षा कर रहे हैं - क्या मैं इस बात के लिए कुछ स्पष्ट याद कर रहा हूँ कि मेरे लिए ऐसा दर्द बिंदु है, और जाहिर है कोई और नहीं? विशेष रूप से मैं स्क्रिप्टेड ssh इंटरैक्शन के बारे में सोच रहा हूं, जैसे कि ansible के साथ। ऐसा लगता है कि आज, आपकी पसंद हैं:
- एजेंट में अपनी कुंजी के जीवनकाल को समय की एक लंबी अवधि के लिए निर्धारित करें, जैसे। 1h या आपकी स्क्रिप्ट्स का अधिकतम चलने का समय जो भी हो सकता है (मुझे संदेह है कि बहुत से लोग अपने sudo री-ऑउटटाइम टाइमआउट को लंबा खींचने की अनुमति देते हैं!) - लेकिन
seahorse
/gnome-keyring-daemon
मुश्किल से यह भी समर्थन करते हैं [4] - अपनी लंबी चलने वाली स्क्रिप्ट्स को सुरक्षित रखें और हर 5/10/15 मिनट में अपना पासफ़्रेज़ पुनः दर्ज करें: अब आप आसानी से अपने पासफ़्रेज़ में दिन में 20 बार प्रवेश करते हुए देखे जा सकते हैं
- इस गुम सुविधा की नकल करने के लिए अपना खुद का होम-ब्रुश समाधान हैक करें, शायद आपके शेल के
TMOUT
शेल संस्करण के साथ संयोजन में (उस सुझाव के लिए freenode #openssh IRC पर धन्यवाद लोग) - एक प्रमुख जीवन भर सेट न करें, अर्थात आपका एजेंट आपकी कुंजी को हमेशा के लिए लोड करता है या जब तक आप मार / रिबूट नहीं करते
यदि आप संक्षिप्त ssh एजेंट टाइमआउट, मजबूत पासफ़्रेज़ और प्रत्येक प्रकार की भूमिका के लिए अलग-अलग कीफ़ाइल्स का उपयोग कर रहे हैं जिसे आप इस रूप में प्रमाणित करते हैं: यह बहुत निराशाजनक दिन होता है!
मैंने gpgkey2ssh और smartcards के साथ प्रयोग किया है, लेकिन यह वास्तव में इस विशेष समस्या को हल नहीं करता है: मैं अभी भी ssh- एजेंट कार्यक्षमता चाहता हूं और मैं नहीं चाहता कि हर 5 मिनट में फिर से मेरे निजी कुंजी को उजागर होने से रोका जाए। स्मृति में जबकि मेरा कंप्यूटर निष्क्रिय है।
क्या मैं गलत कर रहा हूँ?
[१] एसएसएच एजेंट के लिए डिफ़ॉल्ट टाइमआउट कॉन्फ़िगर करना
[२] https://lists.debian.org/debian-devel/2001/09/msg00851.html
[३] /server/518312/putty-pageant-forget-keys-after-period-of-inactivity
[४] https://bugs.launchpad.net/ubuntu/+source/gnome-keyring/+bug/129551
ssh-agent
जानने की उम्मीद नहीं है कि एक सत्र कब निष्क्रिय है, लेकिन कम से कम समय से शुरुआत करें जब भी अंतिम हस्ताक्षर ऑपरेशन हुआ, न कि जब भी ssh-agent
लॉन्च किया गया था। इसके अलावा, मैं पहले से ही प्रत्येक स्क्रिप्ट भूमिका के लिए अलग-अलग उपयोगकर्ता खाते और कीफाइल्स का उपयोग करता हूं, sudoers केवल 1 या 2 कमांड को sudo'd होने की अनुमति देता है यदि आवश्यक हो, और मैंने lshell
चीजों को आगे लॉक करने के लिए देखा है । लेकिन यह सब अभी भी मुझे मेरे कीफाइल्स की रक्षा करने की आवश्यकता से अनुपस्थित नहीं करता है: सिर्फ इसलिए sudo zfs send
कि किसी दिए गए कुंजी के लिए केवल कमांड की अनुमति है, जो भी उस कुंजी को उत्पन्न करता है , उसके लिए एक बहुत शक्तिशाली कमांड है!
ControlMaster
/ ControlPath
/ ControlPersist
विकल्प (देखें man ssh_config
) का उपयोग करें । कम से कम अगर इसका केवल एक मेजबान से जुड़ाव हो।
ssh-agent
अपनी चाबियाँ लोड करने जा रहा हूं, जब तक कि मैं रिबूट नहीं करता (जो सप्ताह हो सकता है)।
ssh-agent
यह किस प्रकार के सत्र के लिए अज्ञेय है (उदाहरणार्थ सत्र, X11 सत्र, या कुछ और)। एक बात मैं यह कहना चाहूंगा कि यदि आपकी स्वचालित स्क्रिप्ट संभवत: आपके एजेंट में लोड की गई कुंजी के आधार पर नहीं होनी चाहिए। उनके पास संभवतः प्रत्येक की अपनी निजी कुंजी होनी चाहिए, जो कि केवल विशिष्ट दूरस्थ कमांड को चलाने के लिए उपयुक्त सर्वर पर मजबूर कमांड के माध्यम से अधिकृत होती है जिसे प्रत्येक स्क्रिप्ट को चलाने की आवश्यकता होती है। यह निश्चित रूप से आप उन लोगों को क्रोन आदि से चलाने देंगे ...