एक उपयोगकर्ता के लिए कई सार्वजनिक कुंजी


55

यह प्रश्न SSH सार्वजनिक कुंजी प्रमाणीकरण के समान है - क्या एक सार्वजनिक कुंजी का उपयोग कई उपयोगकर्ताओं के लिए किया जा सकता है? लेकिन यह दूसरा रास्ता है।

मैं ssh का उपयोग करने पर प्रयोग कर रहा हूं ताकि कोई भी ssh सर्वर आपके उत्तरों के लिए काम करे।

क्या मेरे पास एक ही उपयोगकर्ता के लिए कई सार्वजनिक कुंजियाँ हो सकती हैं? ऐसा करने के क्या लाभ हैं? इसके अलावा, क्या अलग-अलग होम निर्देशिकाओं का उपयोग विभिन्न कुंजी के लिए सेट किया जा सकता है (जो सभी एक ही उपयोगकर्ता से लिंक करते हैं)?

कृपया मुझे बताएं कि क्या मैं अस्पष्ट हूं।

धन्यवाद।

जवाबों:


80

आपकी जितनी इच्छा हो उतनी चाबी आपके पास हो सकती है। अलग-अलग स्थानों के लिए अलग-अलग निजी / सार्वजनिक कुंजी सेटों का उपयोग करना अच्छा है, जैसे कि आपके व्यक्तिगत उपयोग के लिए एक सेट, आपके काम के लिए एक सेट आदि।

सबसे पहले, दो अलग-अलग कीपर्स बनाएं, एक घर के लिए और एक काम के लिए:

ssh-keygen -t rsa -f ~/.ssh/id_rsa.home
ssh-keygen -t rsa -f ~/.ssh/id_rsa.work

इसके बाद, ~/.ssh/configआपके द्वारा कनेक्ट किए गए सर्वर के आधार पर कुंजी का उपयोग करने के लिए अपनी फ़ाइल में एक प्रविष्टि जोड़ें :

Host home
Hostname home.example.com
IdentityFile ~/.ssh/id_rsa.home
User <your home acct>

Host work
Hostname work.example.com
IdentityFile ~/.ssh/id_rsa.work
User <your work acct>

इसके बाद, अपने की सामग्री को संलग्न id_rsa.work.pubमें ~/.ssh/authorized_keysकाम मशीन पर, और अपने घर मशीन पर घर कुंजी के लिए भी ऐसा ही।

फिर जब आप होम सर्वर से जुड़ते हैं तो आप एक की का उपयोग करते हैं, और वह कार्य सर्वर जिसका आप दूसरा उपयोग करते हैं।

ध्यान दें कि आप शायद दोनों कुंजियों को अपने साथ जोड़ना चाहते हैं ssh-agentताकि आपको हर समय अपना पासफ़्रेज़ टाइप न करना पड़े।


यह तब भी काम करेगा जब id_rsa.work.pub और id_rsa.home.pub एक ही सर्वर पर लगाए गए थे? कारण यह है कि मैं अलग-अलग कंप्यूटरों से सर्वर से कनेक्ट हो सकता हूं, इसलिए मैं सोच रहा हूं कि क्या यह समझ में आता है कि प्रत्येक कंप्यूटर के लिए अलग-अलग कीपेयर हैं, भले ही वे सर्वर से एक ही उपयोगकर्ता के रूप में कनेक्ट हो रहे हों। धन्यवाद।
रसेल

2
पूर्ण रूप से! सर्वर की तरफ, ssh अधिकृत_की फ़ाइल में सभी सार्वजनिक कुंजियों की जाँच करेगा, जब तक कि वह एक मैच न खोज ले। तो आप सर्वर पर कोई समस्या नहीं है एक ही अधिकृत_की फाइल में सभी चाबियाँ डाल सकते हैं।
फिल होलेनबैक

@PhilHollenback "ssh सभी सार्वजनिक कुंजियों को अधिकृत_कीज़ फ़ाइल में तब तक जाँचता रहेगा जब तक कि उसे कोई मेल नहीं मिल जाता" - आपका मतलब यह है कि जब तक ग्राहक यह साबित नहीं कर सकता कि वह एक को डिक्रिप्ट कर सकता है, तब तक वह प्रत्येक सार्वजनिक कुंजी के लिए क्लाइंट को चुनौतियाँ भेजता रहे? क्या आपके पास इसके लिए कोई संदर्भ है? (वास्तव में रुचि)
आहा 90210 23

5

एक उपयोगकर्ता के लिए कई उपयोगकर्ताओं की कुंजियाँ रखना बहुत मायने रखता है। सामान्य कारण हैं:

  • बैकअप
  • git (जैसे Push URL: git+ssh://git@git-server/~/repos/MyProject)
  • rsync
  • एक एप्लिकेशन के लिए आम पहुंच

जहां तक ​​अलग-अलग गृहिणी होने के नाते, आप अधिकृत_की environment="HOME=/home/user1"फ़ाइल में उपयोगकर्ता की कुंजी के लिए प्रिपेंड करके उन्हें प्रति कुंजी बदल सकते हैं । देख लो man authorized_keys

इसे आज़माएं, YMMV।

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