सार
Svn को कीरिंग समर्थन के साथ स्थापित करने और Collabnet keyring_tool एप्लिकेशन को स्थापित करने के लिए अपेक्षित कार्य पहले से ही हमारे लिनक्स सर्वरों के लिए किए जाते हैं।
1) कीरिंग का उपयोग करने के लिए SVN क्लाइंट कॉन्फ़िगर करें:
१.१) संपादित करें ~ / .subversion / config
[auth]
password-stores = gnome-keyring
1.2) संपादित करें ~ / .subversion / सर्वर
[global]
store-passwords = yes
store-plaintext-passwords = no
2) अपने पासवर्ड के लिए एक कीरिंग बनाएं। आपको कीरिंग को अनलॉक करने के लिए एक नया पासवर्ड बनाने के लिए प्रेरित किया जाएगा; यह आपकी इच्छा के अनुसार कुछ भी हो सकता है:
keyring_tool --create=svn
3) नए कीरिंग को डिफ़ॉल्ट के रूप में सेट करें:
keyring_tool --setdef=svn
4) .bash_profile या .bash_login (मान लें कि आप अपने टर्मिनल के रूप में बैश का उपयोग कर रहे हैं)
if [ -e /usr/bin/gnome-keyring-daemon ]; then
if [ ! -z "`kill -0 $GNOME_KEYRING_PID 2>&1`" ]; then
# Create dbus transport link for SVN to talk to the keyring.
eval `dbus-launch --sh-syntax`
# Start the keyring daemon.
# The use of export here captures the GNOME_KEYRING_PID, GNOME_KEYRING_SOCK
# env values echoed out at startup.
export `/usr/bin/gnome-keyring-daemon`
fi
fi
5) .bash_logout में
# Kill the message bus established for SVN / Keyring communication
if [ ! -z "`kill -0 $DBUS_SESSION_BUS_PID 2>&1`" ]; then
kill $DBUS_SESSION_BUS_PID > /dev/null 2>&1
fi
# Kill the Gnome Keyring Daemon prior to logout.
if [ ! -z "`kill -0 $GNOME_KEYRING_PID 2>&1`" ]; then
kill $GNOME_KEYRING_PID > /dev/null 2>&1
fi
पृष्ठभूमि
मैं एक समान समस्या में भाग गया, जबकि काम में कुछ SVN रेपो के लिए अधिकृत उपयोगकर्ता पहुँच सुनिश्चित करने के लिए एक परेशानी मुक्त तरीका स्थापित करने की कोशिश कर रहा था। मूल रूप से हमें हर बार उपयोगकर्ता को सर्वर तक पहुँचने के लिए क्रेडेंशियल जाँच के लिए मजबूर करना पड़ता था, यहाँ तक कि svn अपडेट कमांड को प्रमाणीकरण की आवश्यकता होती थी। स्पष्ट रूप से सादा पाठ पासवर्ड भंडारण बाहर था इसलिए थोड़ा शोध के साथ मैं gnome-keyring का उपयोग करके एक तरह से अपने उपयोगकर्ता आधार को लगातार प्रमाणीकरण अनुरोधों के साथ परेशान कर रहा था, जबकि अनधिकृत उपयोगकर्ताओं को अभी भी रिपॉजिटरी से बाहर रखने के लिए उन्हें देखने की पहुंच नहीं होनी चाहिए।
हमारे दिन-प्रतिदिन के अधिकांश काम ssh सुरंगों के माध्यम से RedHat सर्वर w / o X समर्थन में किए जाते हैं, इसलिए मुझे X11 समर्थन के चारों ओर एक रास्ता खोजना पड़ा। कुछ खोज के बाद मैं इसके आसपास का रास्ता खोजने में कामयाब रहा:
स्रोत सामग्री
http://support.wandisco.com/index.php?/Knowledgebase/Article/View/362/17/how-to-setup-encrypted-svn-password-storage-using-gnome-keyring-in-an-ssh -session
वे यहाँ कुंजी कोलेबनेट कीरिंग_टूल का उपयोग कर रहे हैं, जो गनोम-कीरिंग-मैनेजर क्लाइंट के बिना एक कीरिंग बनाने के लिए और एसवीएन को सेटअप को संभालने देने के बजाय खुद को लॉन्च करते हैं। SVN सूक्ति-कीरिंग-डेमन से कनेक्ट करने के लिए DBUS का उपयोग करता है और समग्र प्रमाणीकरण को प्रभावित करता है। -Sh- वाक्यविन्यास के साथ dbus सत्र को मैन्युअल रूप से शुरू करने और फाड़ने से आप dbus स्टार्टअप पर एक एक्स क्लाइंट से जुड़ने की कोशिश करने से बचते हैं। यदि आप सिर्फ सूक्ति-कीरिंग-डेमन शुरू करते हैं और एसवीएन का उपयोग करने का प्रयास करते हैं, तो यह आपको अपने कीरिंग पासवर्ड के लिए संकेत देगा, लेकिन फिर आपको एसवीएन क्रेडेंशियल्स के लिए भी संकेत देगा। एसबीएन एक एक्स क्लाइंट की कमी के कारण इसे शुरू करने की कोशिश करने पर डब विफल हो जाएगा; जाहिरा तौर पर एसवीएन डब शुरू करते समय किसी विशेष झंडे का उपयोग नहीं करता है।
--login
विकल्प बहुत उपयोगी है, हालांकि मुझे यकीन है कि मेरे अनछुए पासवर्ड को स्क्रिप्ट में नहीं रखना चाहिए या इसे कमांड लाइन पर नहीं रखना चाहिए। (गैर-शेल-भाषा) स्क्रिप्ट के भीतर से गैर-लिखित मोड में पढ़ना, जो कि स्पॉन डेमॉन के लिए उस इनपुट को पास करता है, शायद ऐसा करने का एक अच्छा तरीका होगा। मुझे केवल बूट के अनुसार एक बार इस प्रक्रिया को शुरू करना चाहिए, इसलिए यह पासवर्ड टाइप करने के लिए समझ में आता है; मुझे बस GTK संवाद के माध्यम से कमांड लाइन पर करने में सक्षम होना चाहिए।