अन्य उपयोगकर्ताओं के लिए ssh-copy-id के माध्यम से सार्वजनिक कुंजी स्थापित करें


26

ssh-copy-idएक रिमोट मशीन में अपनी सार्वजनिक कुंजी स्थापित करने के लिए इस्तेमाल किया जा सकता है authorized_keys। यदि आपके पास sudoक्षमता है , तो अन्य उपयोगकर्ताओं की सार्वजनिक कुंजियाँ स्थापित करने के लिए समान कमांड का उपयोग किया जा सकता है ?

अद्यतन: स्थानीय और दूरस्थ दोनों Ubuntu 12.04 का उपयोग कर रहे हैं।

अद्यतन 2: एक नया उपयोगकर्ता खाता बनाने और सार्वजनिक कुंजी जोड़ने की प्रक्रिया का वर्णन करना

  1. (रिमोट) एक नया उपयोगकर्ता खाता बनाएँ, और इसे केवल उपयोगकर्ता की सार्वजनिक पहुँच के लिए सेट करें।
  2. (स्थानीय) नए उपयोगकर्ता खाते (ssh-keygen) के लिए एक सार्वजनिक कुंजी उत्पन्न करें।
  3. आम तौर पर मैं .ssh/authorized_keysदूरस्थ सर्वर पर निर्देशिका और फ़ाइल बनाता हूं , फिर नए उपयोगकर्ता के खाते में स्थानीय रूप से उत्पन्न सार्वजनिक कुंजी को कॉपी और पेस्ट करता हूं । मैं जो देख रहा हूं वह यह है कि अगर मैं ssh-copy-idइस नई बनाई गई उपयोगकर्ता की सार्वजनिक कुंजी को सीधे ssh निर्देशिका में स्थापित करने के लिए उपयोग कर सकता हूं । बस एक जोड़े को और अधिक आदेशों को बचाने के लिए।

जवाबों:


12

समान कमांड नहीं, लेकिन यदि आपके पास रिमोट होस्ट पर sudo है, तो आप ssh का उपयोग दूरस्थ रूप से आवश्यक चरणों को करने के लिए कर सकते हैं। मैं अपने रास्पबेरी रूट उपयोगकर्ता को अपनी ssh कुंजी पुश करने के लिए निम्न कमांड का उपयोग करता हूं:

cat ~/.ssh/id_rsa.pub | \
  ssh pi@192.168.1.25 \
  "sudo mkdir /root/.ssh; sudo tee -a /root/.ssh/authorized_keys"
  • मेरे bublic कुंजी बिल्लियों
  • इसे ssh को पाइप करता है
  • ssh मेरे रास्पबेरी को ssh उपयोगकर्ता के रूप में जोड़ता है
  • रिमोट पर sudo /root/.ssh बनाने के लिए उपयोग करता है
  • फिर स्टड को जोड़ने के लिए "टी-ए" के साथ सुडो का उपयोग करता है (जो कि पहली बिल्ली से चाबी रखता है) को /root/.ssh/authorized_keys

बस इस सामान को एक स्क्रिप्ट के रूप में एक साथ रखें, हो सकता है कि रिमोट की तरफ कुछ चामोड / चॉइन लगाएं और आपके पास वह हो जो आपको चाहिए।


सुंदर और कमांड ब्रेकडाउन के लिए धन्यवाद।
ब्लेक फ्रेडरिक

1

हाँ :), यदि आप, उदाहरण के लिए, भूत @ ubuntu और आप के रूप में लॉग इन हैं

ssh-copy-id root@host-ip

थान आप देखेंगे, /root/.ssh/authorized_keysफ़ाइल कुंजी में होस्ट सर्वर पर ghost@ubuntu
इसका मतलब है कि भूत उपयोगकर्ता ने अपनी कुंजी जोड़ी की प्रतिलिपि बनाई है और उसे अब पासवर्ड टाइप नहीं करना है।
मुझे यकीन नहीं है कि यह -u <username>अब ध्वज के साथ काम करेगा , लेकिन आप हमेशा अलग उपयोगकर्ता के रूप में लॉग इन कर सकते हैं

su <user_name> 

और फिर ssh-copy-id ...


1
के /root/.ssh/authorized_keysबजाय पर स्थापित किया जाएगा कुंजी /home/ghost/.ssh/authorized_keys? मैंने अभी उस प्रक्रिया को अपडेट किया है जो मैं वर्तमान में एक नए उपयोगकर्ता के लिए सार्वजनिक कुंजी स्थापित करने के लिए कर रहा हूं। बस एक बेहतर तरीके की तलाश है। धन्यवाद!
Realguess

कुंजी उस उपयोगकर्ता के घर में स्थापित की जाएगी जिसे आप दूरस्थ रूप से कनेक्ट कर रहे हैं। आप किस कुंजी को कॉपी करना चाहते हैं, यह निर्दिष्ट करने के लिए आप ssh-copy-id के -i विकल्प का उपयोग कर सकते हैं, लेकिन आप इसे सामान्य ssh-copy-id के साथ किसी अन्य निर्देशिका में कॉपी नहीं कर सकते।
user2313067

यदि आप ssh-copy-id रूट @ होस्ट-आईपी की तुलना में रूट के रूप में लॉग इन करना चाहते हैं, तो आप निर्दिष्ट कर सकते हैं कि आप किस उपयोगकर्ता की कॉपी करेंगे, यदि आप ssh-copy-id भूत की तुलना में भूत के रूप में चाहते हैं @ host-ip
mirkobrankovsk

1
केवल सार्वजनिक कुंजी द्वारा लॉग इन करने के लिए सिस्टम स्थापित किया गया था। चूंकि उपयोगकर्ता ghostनया बनाया गया था, इसलिए उपयोगकर्ता के लिए कोई सार्वजनिक कुंजी उपलब्ध नहीं है। इसलिए पहले उपयोगकर्ता के लिए सार्वजनिक कुंजी स्थापित करने की आवश्यकता है, फिर ssh-copy-id ghost@host-ipकाम करेगा। लेकिन धन्यवाद, मुझे लगता है कि रिमोट सर्वर पर कुछ अतिरिक्त कमांड एक बड़ी बात नहीं होगी।
Realguess

हाँ, पहले पब तैयार करने की जरूरत है। मुख्य स्थानीय और ssh-copi-id से रिमोट सर्वर तक
mirkobrankovic
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.