मेरी SSH कुंजियों को किसी अन्य मशीन में कैसे स्थानांतरित करें?


42

मेरे पास दो मशीनों पर खाते हैं: H1 और H2। मैंने H1 पर ssh कीज़ बनाईं और इसे S1 पर स्थापित किया। मैं अब H1 से S1 पर ssh कर सकता हूं। मैं H2 से ऐसा ही करना चाहता हूं। मैं H2 पर H1 पर उत्पन्न ssh कीज़ को कैसे स्थापित करूँ?


2
चूंकि ssh-copy-idएक अधिक मूर्ख-प्रूफ है (मौजूदा कुंजी का कोई अधिलेखित नहीं है या गलती से सार्वजनिक कुंजी के बजाय निजी कुंजी की नकल कर रहा है ) और कम ज्ञात समाधान, कृपया उन उत्तरों में से एक को स्वीकार किए गए उत्तर के रूप में स्वीकार करने पर विचार करें।
agtoever

जवाबों:


28

संपादित: यदि आप दोनों मशीनों के मालिक हैं, तो आप अपनी निजी कुंजी साझा कर सकते हैं। लेकिन यह समाधान चोरी की गई नोटबुक के मामले या उन मशीनों के लिए सुरक्षित नहीं है जो आपके पास नहीं हैं।

यदि आप H2 से S1 में प्रवेश करने में सक्षम होने के लिए उसी निजी कुंजी का उपयोग करना चाहते हैं, तो आप अपनी निजी कुंजी को H1 से H2 तक कॉपी कर सकते हैं। जब आप H1 पर कमांड करते हैं:

H1$ ssh H2 mkdir ~/.ssh
H1$ scp  ~/.ssh/id_rsa ~/.ssh/id_dsa H2:~/.ssh/

चेतावनी! यह H2 में आपके पास मौजूद किसी भी निजी कुंजी को हटा देगा और बदल देगा।

बेहतर तरीका यह है कि H2 ( ssh-keygen) पर नई निजी कुंजी उत्पन्न करें और उपयोग के साथ S1 पर अपना सार्वजनिक भाग स्थापित करें ssh-copy-id। इस सुरक्षित स्थिति में आपके पास चाबियों के दो सेट होंगे; एक H1-S1 लॉगिन के लिए है और दूसरा H2-S1 लॉगिन के लिए है। S1 में दो सार्वजनिक कुंजियाँ अधिकृत होंगी। और आप उनमें से किसी को या दोनों को रद्द करने में सक्षम होंगे (उदाहरण के लिए, जब आप नोटबुक चोरी हो जाते हैं, या मशीन का मालिक आपको खाता अक्षम करने और आपकी सभी फ़ाइलों का पुन: उपयोग करने का निर्णय लेता है)।


8
निजी कुंजी की नकल करना वास्तव में एक अच्छा विचार नहीं है। कई स्थानों पर एक ही कुंजी होने से 1. यह अधिक कमजोर हो जाता है, 2. जोखिम बढ़ जाता है जो आपने सभी स्थानों पर नियंत्रण खो दिया है, 3. आपको केवल एक स्थान से पहुंच को अक्षम करने की अनुमति नहीं देता है। सुरक्षा के दृष्टिकोण से आपको हर स्थान पर एक नया कुंजी-युग्म उत्पन्न करना चाहिए - म्यू क़ियाओ से समाधान।
पाबौक

27

उपयोग ssh-copy-id

SYNOPSIS

ssh-copy-id [-i [पहचान_फाइल]] [उपयोगकर्ता @] मशीन

विवरण

ssh-copy-id एक स्क्रिप्ट है जो किसी दूरस्थ मशीन में लॉग इन करने के लिए ssh का उपयोग करता है और संकेतित पहचान फ़ाइल को उस ~ ~ /। ssh / अधिकृत_की फ़ाइल में जोड़ता है।


1
@ मैं H2 से S1 तक ssh करना चाहता हूं। मैं H1 से H2 तक अपनी निजी और सार्वजनिक कुंजी को स्थानांतरित करना और स्थापित करना चाहता हूं। क्या ऐसा होगा?
ब्रू

3
@ नहीं, आपको h2 पर कुंजियों को फिर से बनाने और उस कमांड का उपयोग करने के लिए अपनी कुंजियों को कॉपी करने की आवश्यकता है। एक और दृष्टिकोण h1 और h2 शेयर होम डायरेक्टरी दे रहा है।
म्यू किआओ

9

दो निजी कुंजियों का उपयोग करें

उसी प्रक्रिया का उपयोग (लेकिन एच 2 सेट अप नहीं एक ही निजी कुंजी) के रूप में तुमने किया था जब तुम एच 1 की स्थापना:

  • किसी अन्य मशीन से एक निजी कुंजी को कॉपी करने का एक अच्छा कारण कभी नहीं है। यदि आपने H2 पर पहले से कोई नई निजी कुंजी उत्पन्न नहीं की है, तो अभी करें। इसके अलावा संबंधित सार्वजनिक कुंजी उत्पन्न करें। H2 पर एक टर्मिनल में,

प्रकार: ssh-keygen -t rsa

  • अपने H2 की सार्वजनिक कुंजी को सर्वर पर कॉपी करें। H2 पर एक टर्मिनल में,

प्रकार: ssh-copy-id username@S1.net

(लेकिन S1 और S1 के होस्टनाम पर अपने वास्तविक उपयोगकर्ता नाम का उपयोग करें, और बाद में यह पूछने पर S1 पर अपने पासवर्ड में टाइप करें)।

यह ~/.ssh/authorized_keysसर्वर पर उस उपयोगकर्ता के लिए फ़ाइल में आपके कार्य केंद्र की सार्वजनिक कुंजी स्थापित करता है।

  • कोई चरण 3 नहीं है। अब से, आप अपने H2 से S1 में लॉग इन कर सकते हैं, और अपने H1 से S1 में भी लॉग इन कर सकते हैं।

विवरण

मुझे लगता है कि आप वास्तव में क्या पूछ रहे हैं

  • मेरे पास एक सर्वर है ("S1")
  • मैं अपने पर्सनल लैपटॉप ("H1") से अपने सर्वर में लॉग इन करता हूं
  • मैं अपने कार्य केंद्र ("H2") से अपने सर्वर में लॉग इन करना चाहता हूं।

ऐसा करने का सही तरीका क्या है?

  • मुझे लगता है कि मैं दोनों जगह से एक ही पासवर्ड से लॉग इन कर सकता हूं। यह सही तरीका नहीं हो सकता है, क्योंकि हर कोई कहता है कि सार्वजनिक कुंजी प्रमाणीकरण पासवर्ड की तुलना में बहुत बेहतर है। (ए)
  • मुझे लगता है कि मैं अपने लैपटॉप से ​​निजी कुंजी को अपने कार्य केंद्र में कॉपी कर सकता हूं। यह सही तरीका नहीं हो सकता, क्योंकि हर कोई कहता है कि निजी कुंजी क्लाइंट मशीन को छोड़ने के लिए कभी नहीं माना जाता है।

लोगों ने इसे अपने सिर में अंकित किया है कि एक सर्वर पर एक खाते में एक एकल उपयोगकर्ता नाम और निश्चित रूप से एक एकल अधिकृत पासवर्ड है।

सार्वजनिक कुंजी सिस्टम जैसे ssh पासवर्ड सिस्टम से बेहतर हैं: सर्वर पर एक खाते में एक एकल उपयोगकर्ता नाम और अधिकृत सार्वजनिक कुंजी की संख्या है , जो सभी ~/.ssh/authorized_keysफ़ाइल में सूचीबद्ध हैं ।

( अधिक जानकारी )।


मुझे खुद को दोहराने के लिए क्षमा करें ।
डेविड कैरी

0

Ssh-copy-id आपके लिए काम करेगा: http://linux.die.net/man/1/ssh-copy-id ?


@ मैं H2 से S1 तक ssh करना चाहता हूं। मैं H1 से H2 तक अपनी निजी और सार्वजनिक कुंजी को स्थानांतरित करना और स्थापित करना चाहता हूं। क्या ऐसा होगा?
ब्रूस

2
यदि आप s1-copy-id का उपयोग करके S1 या H1 (जो अब आपकी कुंजी है) में लॉग इन हैं, तो आप अपनी सार्वजनिक कुंजी (निजी नहीं) को H2 में स्थानांतरित कर सकते हैं। सामान्य तौर पर उन मशीनों की संख्या को सीमित करना सबसे अच्छा है जिन पर आपकी निजी कुंजी स्थापित है। केवल इसकी हानि को रोकने के लिए इसे कुछ सुरक्षित मशीनों में रखने का प्रयास करें।

मैं अपनी निजी कुंजी को H2 में कैसे कॉपी करूं?
ब्रूस

0

SSH कीज़ को एक कंप्यूटर से दूसरे कंप्यूटर में शिफ्ट करने के लिए। बस H1 (पुरानी मशीन) से ~ / .sh से पूरे फ़ोल्डर को कॉपी करें। नई मशीन H2 के ~ / .shsh सामग्री फ़ोल्डर में।

अब कोशिश करो:

ssh ubuntu@13.123.43.26 (आपका S1 ip)

संभवत: आपको उस रन को ठीक करने के लिए एक अनुमति चेतावनी मिलेगी:

chmod 400 ~ / .ssh / id_rsa

अब फिर से:

ssh ubuntu@13.123.43.26 (आपका S1 ip)

यह अब ठीक काम करेगा।

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