एक और उपयोगकर्ता नाम के लिए पासवर्डलेस ssh?


14

मैं एक तोड़फोड़ परियोजना के लिए एक पासवर्ड रहित ssh कनेक्शन करना चाहता हूं। अभी मैं ssh + svn का उपयोग कर रहा हूं, और यह थोड़ा कष्टप्रद है, क्योंकि मुझे किसी भी समय सर्वर टाइप करने के लिए पासवर्ड टाइप करना होता है।

मैंने वेब पर कई ट्यूटोरियल खोजे हैं कि पासवर्डलेस ssh के लिए एक कुंजी कैसे बनाई जाए, लेकिन वे सभी यह मानने लगते हैं कि मैं रिमोट सिस्टम पर उसी उपयोगकर्ता नाम का उपयोग कर रहा हूं जैसे मैं अपने होम सिस्टम के लिए करता हूं। हालाँकि, उपयोगकर्ता नाम जो मैं ssh + svn के लिए उपयोग करता हूं, यह अलग है कि सिस्टम पर उपयोगकर्ता खाता नाम जो मैं चला रहा हूं। मैं इसे कैसे ठीक से सेट करूँ? मुझे सिर्फ की फाइल में नाम बदलने का सौभाग्य नहीं मिला है।

जवाबों:


15

आपको बस दूसरे सिस्टम के यूजरनेम को svnकमांड में सप्लाई करना है :

$ svn co svn+ssh://otheruser@othersystem/path/to/repo

अपने प्रश्न के शीर्षक का उत्तर देने के लिए:

$ ssh otheruser@othersystem

यह sshdदूरस्थ मशीन पर ~otheruser/.ssh/authorized_keysउस सार्वजनिक कुंजी को देखने के लिए होता है, जिस मशीन पर आप कमांड टाइप कर रहे हैं।


1
इसलिए निर्देशों का एक हिस्सा एक फ़ाइल बनाना था .ssh/id_rsa.pub, और इसे दूरस्थ सर्वर पर अपलोड करना था। जब मैंने इसे बनाया, तो यह स्थानीयकरण @ लोकल सिस्टम के साथ समाप्त हो गया। इसे रिमोटसनेम @ रीमोटसिस्टम में बदला जाना चाहिए, है ना? दोनों स्थानीय और दूर से?
user394

5
नहीं। बस अपने स्थानीय की सामग्री को संलग्न id_rsa.pubकरने के लिए authorized_keysदूरस्थ सिस्टम पर। यह काम करेंगे।
वॉरेन यंग

1
वैकल्पिक रूप से, कई प्रणालियों के पास इस समस्या को हल करने के लिए ssh-copy-id है: "ssh-copy-id -i ~ / .ssh / id_rsa.pub यूज़रनेम @ रिमोट-मशीन"
मैट सिमंस

दुर्भाग्य से, कई नहीं करते हैं, और ऐसा लगता है कि यह ओपनएसएसएच का एक मानक हिस्सा नहीं है, इसलिए कम से कम इस स्क्रिप्ट के विभिन्न कार्यान्वयनों के बारे में कुछ चल रहा है।
वॉरेन यंग

यदि आप सूक्ति का उपयोग कर रहे हैं, तो आपके पास चाबियों की तैनाती है।
मैकीज पीचोटका

9

इसे करने के दो तरीके हैं:

1) svn url में उपयोगकर्ता @ डालें; यह svn + ssh को उस उपयोगकर्ता के रूप में लॉगिन करने के लिए कहता है। मुझे लगता है कि यह रखरखाव के दृष्टिकोण से एक बुरा विचार है, क्योंकि भंडार जैसी चीजें जो रिपॉजिटरी के अन्य भागों में इंगित करती हैं, सही तरीके से काम नहीं करेंगी।

2) एक ~ / .ssh / config ( ssh_config के रूप में प्रलेखित ) करें जो कुछ इस तरह से कहे:

Host othersystem
  User otheruser

इस तरह से दूसरों के लिए ssh करने का कोई भी प्रयास अन्यर का उपयोग करने के लिए डिफ़ॉल्ट होगा। जो आपके लिए तब आसान है जब आप स्वयं svn का उपयोग कर रहे हों, साथ ही ssh भी करें।


5

आपके पास दोनों माशीनों पर एक ही उपयोगकर्ता नाम नहीं है। जब तक आप कुंजी उत्पन्न करते हैं ( ssh-keygen) आपको स्थानीय सर्वर से ( ~/.ssh/id_rsa.pubया ~/.ssh/id_dsa.pubकुंजी के प्रकार पर निर्भर करता है) लाइन की प्रतिलिपि बनानी होगी और इसे ~/.ssh/authorized_keysरिमोट पर जोड़ना होगा ।

% ssh-keygen
% cat ~/.ssh/id_*.pub | ssh remoteuser@remoteserver 'cat > .ssh/authorized_keys'

यदि आप remoteuserप्रत्येक बार टाइप करना नहीं चाहते हैं तो ~/.ssh/configनिम्न करें :

Host remoteserver
    User remoteuser

पुनश्च। कुंजी का नाम रूप में हो सकता है, localuser@localhostलेकिन यह केवल एक नाम है । यह बस के रूप में अच्छी तरह से हो सकता है myfavouritekey@myfavouritecomputerऔर कोई भी परवाह नहीं करेगा।


ऊपर दी गई "बिल्ली" कमांड ऊपर ssh-copy-idउल्लिखित सामान्य लेकिन गैर-मानक स्क्रिप्ट का मूल है । मैं इसे पहचानता हूं क्योंकि मेरे द्वारा उपयोग किए जाने वाले सभी सिस्टम नहीं आते हैं ssh-copy-id, इसलिए मैंने कुछ समय से अधिक की तरह कुछ टाइप किया है। :)
वॉरेन यंग

मैंने कभी नहीं सुना है ssh-copy-id। मैं आमतौर पर vimया seahorse;) का उपयोग करता हूं ;
मिकीज पीचोटका

0

मेरे द्वारा .ssh / config बनाने और चलाने के बाद:

cat ~/.ssh/id_*.pub | ssh remoteuser@remoteserver 'cat > .ssh/authorized_keys'

मुझे त्रुटि मिली:

Bad owner or permissions on /usr/share/eprints3/.ssh/config

फिर मैं जोड़ता हूं chmod 600 .ssh/config, और उसके बाद, यह सुचारू रूप से चल रहा है।

enter code here

1
यह बेहतर है यदि आप इसे अधिकृत_की फ़ाइल में जोड़ते हैं, अन्यथा यह अन्य पब कुंजी को भी हटा देगा। इतना बेहतर है कि अगर आप अपना जवाब 'बिल्ली >>। एसश / अधिकृत_कीप्स' के साथ संपादित करते हैं
नितिन महेश
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.