मेरे मामले में, मैं एक SVN चेकआउट करना चाहता हूँ:
svn co svn+ssh://10.106.191.164/home/svn/shproject
हालाँकि, मैं उस एक लाइन में पासवर्ड रखना चाहता हूं, ताकि वह पॉप अप न हो।
मेरे मामले में, मैं एक SVN चेकआउट करना चाहता हूँ:
svn co svn+ssh://10.106.191.164/home/svn/shproject
हालाँकि, मैं उस एक लाइन में पासवर्ड रखना चाहता हूं, ताकि वह पॉप अप न हो।
जवाबों:
svn co svn + ssh: // उपयोगकर्ता नाम: password@10.106.191.164/home/svn/shproject
यह देखते हुए कि आप SSH का उपयोग कर रहे हैं, पसंदीदा तरीका प्राधिकरण के लिए एक सार्वजनिक कुंजी का उपयोग करना है, जो पासवर्ड की आवश्यकता को पूरी तरह से बचाता है।
चाबियाँ बनाने और स्थापित करने के लिए एक गाइड यहां पाया जा सकता है ।
वास्तव में बेहतर एक कीपर उत्पन्न करना है। आपके स्थानीय उपयोगकर्ता के रूप में:
$ ssh-keygen -t rsa
(सभी चूक स्वीकार करें)
फिर .ssh / id_rsa.pub की सामग्री लें और इसे दूरस्थ सर्वर पर .ssh / प्राधिकृत_के साथ जोड़ें। सुनिश्चित करें कि यह सब एक ही पंक्ति में चिपकाया गया है। यह भी सुनिश्चित करें कि .ssh निर्देशिका की अनुमतियाँ 600 हैं।
फिर आपको पासवर्ड के लिए संकेत दिए बिना ssh करने में सक्षम होना चाहिए।
एक पासवर्ड का उपयोग करने के बजाय आप एक निजी / सार्वजनिक कुंजी जोड़ी पर एक नज़र रखना चाहते हैं और ssh का उपयोग कर सकते हैं। इस तरह की जोड़ी बनाने के लिए अधिकांश लिनक्स वितरण आदेशों का उपयोग करने में आसान होते हैं। हालाँकि इसे आपके उपयोगकर्ता की ~ / .shsh / अधिकृत_की फ़ाइल में सार्वजनिक कुंजी फ़ाइल को जमा करने के लिए सर्वर साइड (एक बार) तक पहुँचने की आवश्यकता होगी।
खैर, मैं एक पासवर्ड दर्ज करना चाहता हूं - मुझे यह पसंद नहीं है कि मेरा पासवर्ड कहीं और सेव किया जाए; हालाँकि, मैं इसे svn + ssh कमांड के सेट के अनुसार एक बार दर्ज करना चाहता हूँ ; और अक्सर, आप बस एक करना चाहते हैं svn checkout
- और किसी भी तरह से पासवर्ड दर्ज करना होगा। यह ऐसे मामले में है जब मैं केवल एक बार एक पासवर्ड टाइप करना चाहूंगा।
तो, केवल @Boinst और @Marius द्वारा उत्तर मेरे उपयोग के मामले के लिए प्रासंगिक थे; दुर्भाग्य से, उन्होंने मदद नहीं की, क्योंकि मैं उन्हें काम करने के लिए नहीं मिला। मुझे आश्चर्य है कि अगर पोस्ट लेखक खुद उन्हें पोस्ट करने से पहले आदेशों की कोशिश करते हैं, क्योंकि अब मैं कल्पना नहीं कर सकता कि वे कैसे काम कर सकते हैं - यहाँ एक परीक्षण मैंने अपने Ubuntu 10.04 पीसी पर स्थानीय रूप से किया है (और मैं Ctrl-C के साथ तोड़ता हूं, हर बार मैं देखता हूं पासवर्ड शीघ्र दिखाई):
$ svn --version | head -1
svn, version 1.6.6 (r40053)
$ cd /tmp
$ svnadmin create myrepo
$ read -p 'ssh myself@127.0.0.1? ' PASS
ssh myself@127.0.0.1? [type _PASSWORD_, press ENTER]
## trying first with https://superuser.com/a/71479/39752
# (specify in URL user:pass separated by colon)
## plain ssh - asks for password anyway:
$ ssh myself:$PASS@127.0.0.1
myself:_PASSWORD_@127.0.0.1's password: ^C
# svn - with just username, as expected:
$ svn co svn+ssh://myself@127.0.0.1/tmp/myrepo myrepo-wc
myself@127.0.0.1's password: ^C
svn: Network connection closed unexpectedly
# svn - with password added to URL, asks for password anyway:
$ svn co svn+ssh://myself:$PASS@127.0.0.1/tmp/myrepo myrepo-wc
myself:_PASSWORD_@127.0.0.1's password: ^C
svn: Network connection closed unexpectedly
# trying then with https://superuser.com/a/380426/39752, https://superuser.com/a/327822/39752
# (--non-interactive and --username/--password on command line)
# svn - asks for password anyway:
$ svn co svn+ssh://myself@127.0.0.1/tmp/myrepo --non-interactive --trust-server-cert --username myself --password $PASS --no-auth-cache
myself@127.0.0.1's password: ^C
svn: Network connection closed unexpectedly
जहां तक --username/--password
पर svn
कमांड लाइन का संबंध है - कि नहीं के साथ फर्क पड़ता है svn+ssh
, क्योंकि यह है, ssh
, नहीं कह svn
:
svn - तोड़फोड़ की अनदेखी "--password" और "--username" विकल्प - ढेर अतिप्रवाह
आपको जो प्रांप्ट मिल रहा है, वह सबवर्सन की तरह आपको पासवर्ड के लिए नहीं कह रहा है, ऐसा लगता है जैसे आप पासवर्ड मांग रहे हैं।
इसके अतिरिक्त, जैसा कि लॉग दिखाता है, ssh
स्वयं username:password@...
URL में " " स्वीकार नहीं करता है - और न ही ऐसा करता है svn
। यह URL में केवल उपयोगकर्ता नाम का उपयोग करने के लिए क्यों स्वीकार्य है svn
, शायद इसमें समझाया गया है ~/.subversion/config
:
### (यदि URL में उपयोगकर्ता नाम शामिल है, तो होस्टनाम
### सुरंग एजेंट को @ के रूप में पारित किया जाएगा )।
नोटिस के बारे में कुछ नहीं कहा गया है <user>:<pass>@<hostname>
।
अब, डेबियन पर एसवीएन + एसएसएच पर पेज तोड़फोड़ के लिए धन्यवाद , मुझे अंत में एहसास हुआ कि एक SVN_SSH
पर्यावरण चर है ~/.subversion/config
जो (मुझे लगता है) ssh सुरंग के लिए उपयोग किया जाता है ; और अंत sshpass
में इस तरह से एक ही तरीके से पासवर्ड को संभालने के लिए प्रोग्राम का उपयोग करने की संभावना खुल जाती है:
$ SSHPASS=$PASS SVN_SSH="sshpass -e ssh" svn co svn+ssh://myself@127.0.0.1/tmp/myrepo myrepo-wc
Checked out revision 0.
खैर, कम से कम मुझे खुशी है कि मुझे आखिरकार एक समाधान मिला जो मेरे लिए काम करता है - आशा है कि यह किसी और को भी मदद करता है,
चीयर्स!
आप दिए गए स्विच यूज़रनेम और पासवर्ड का भी उपयोग कर सकते हैं ।
आदेश-पंक्ति प्रमाणीकरण देखें ।
मुझे लगता है कि sshpass (लिनक्स में) इसका उपयोग करने का सबसे अच्छा तरीका है।
Sshpass स्थापित करें
$ sudo apt-get install sshpass
अस्थायी पर्यावरण चर सेट करें
$ export SSHPASS=*yourpass*
Svn config फाइल को एडिट करें
$ nano ~/.subversion/config
अंत sshpass -e
में ssh
कमांड से पहले ssh लाइन में ऐड आउट कमेंट करें
ssh = $SVN_SSH sshpass -e ssh -q -o ControlMaster=no