EC2: एक उदाहरण के लिए कई ssh कुंजियाँ?


12

क्या ईसीएच उदाहरण में SSH के लिए एक से अधिक निजी कुंजी बनाना संभव है? इसके लिए सामान्य सर्वोत्तम अभ्यास क्या है? हमारे पास कई उपयोगकर्ता हैं जिन्हें सर्वर में SSH की जरूरत है और एक कुंजी को वितरित करने से सिर्फ अच्छा काम नहीं होता है। यह हमें उपयोगकर्ताओं को सर्वर में SSH में सक्षम होने से हटाने की अनुमति नहीं देता है जब तक कि हम कुंजी और पुनर्वितरण को नहीं बदलते हैं।



जब आप किसी टीम के लिए SSH कुंजी प्रबंधन कर रहे होते हैं, तो संभवतः उपयोगकर्ता या SSH UKM जैसे विशेष टूल को देखना सबसे अच्छा होता है (अस्वीकरण: मैं उपयोगकर्ता के लिए काम करता हूं)।
जैमिसन बेकर

जवाबों:


5

पूर्ण रूप से; आप बस छवि में सभी प्रासंगिक सार्वजनिक कुंजी रखते हैं और आपको जाने के लिए सही होना चाहिए। मैं SSH कुंजियों के प्रबंधन के लिए एक विन्यास प्रबंधन प्रणाली का उपयोग करना पसंद करता हूं; इस तरह यह चल रहे सिस्टम पर भी उपयोगकर्ता की पहुंच को रद्द करने के लिए काफी तुच्छ है। वहाँ भी अधिक हैं ... चलो "कल्पनाशील" कहते हैं ... इसे संभालने के तरीके, जैसे कि एलडीएपी में आपके सभी एसएसएच कुंजी को संग्रहीत करना, जो किसी अन्य क्रेडेंशियल की तरह एसएसएच कुंजी को केंद्रीकृत करता है।


2
जब आप SSH कुंजियों को LDAP में संग्रहीत करना शुरू करना चाहते हैं, तो केर्बरोस के बारे में जानने का समय आ गया है।
84104

1
मैंने केर्बरोस को तैनात किया है; व्यक्तिगत रूप से, मुझे लगता है कि यह एक समस्या की तलाश में एक समाधान है, और उस पर एक बल्कि बारीक और कष्टप्रद समाधान है।
Womble

2
@Ash: प्रश्न प्रश्नों में जाते हैं, टिप्पणियाँ नहीं।
Womble

1
मैं उपरोक्त टिप्पणी को नजरअंदाज करने जा रहा था - लेकिन साइट पर किसी के लिए भी मुझे लगा कि मुझे यह स्पष्ट करना चाहिए कि यदि आपके पास एक टिप्पणी है जो दिए गए उत्तर, स्पष्टीकरण या गलतफहमी के कार्यान्वयन से संबंधित है, तो इसे स्पष्ट किया जाना चाहिए। टिप्पणियों में, ताकि ओपी किसी भी भ्रम को स्पष्ट करने के लिए उत्तर को संपादित कर सके।
माज़ेटेक

2
नहीं, आपको टिप्पणियों में स्पष्ट प्रश्न पूछना चाहिए यदि उत्तर मूल रूप से पूछे गए प्रश्न को संबोधित नहीं करता है। यदि आप उत्तर की सामग्री के आधार पर एक नया प्रश्न पूछना चाहते हैं, तो आपको एक नया प्रश्न पूछने के लिए पृष्ठ के ऊपरी दाएं कोने में बड़े "प्रश्न पूछें" बटन का उपयोग करना चाहिए। यह एक प्रश्नोत्तर मंच है, चर्चा मंच नहीं।
Womble

6

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

आप इसे अन्य तरीके से भी कर सकते हैं - आप उपयोगकर्ता को ssh-keygen और ~ / .shsh / id_rsa (या id_dsa) चलाते हैं। और उपयोगकर्ता फ़ाइल को ~ / .ssh / id_rsa पर सहेजता है। बस उस फ़ाइल के 600 (-rw -------) को अनुमतियाँ बदलने के लिए याद रखने की आवश्यकता है, अन्यथा ssh इसे स्वीकार नहीं करेगा। यह स्पष्ट रूप से कम सुरक्षित है, क्योंकि निजी कुंजी को संभवतः ईमेल पर वितरित किया जा रहा है।

यह पुट्टीजेन के साथ पुट्टी में भी किया जा सकता है।


1

एक सरल तरीका नीचे दिखाया गया है।

लिनक्स / मैक उपयोगकर्ताओं के लिए:

  1. सार्वजनिक और निजी कुंजी बनाने के लिए निम्नलिखित कमांड का उपयोग करें: $ ssh-keygen -t rsa -b 4096

  2. सार्वजनिक कुंजी को अपने S3 बाल्टी में एक फ़ोल्डर में अपलोड करें। उदाहरण के लिए: S3> MyBucket> Keypair

  3. अपनी निजी कुंजी सहेजें और सुरक्षित करें।

विंडोज उपयोगकर्ताओं के लिए:

  1. कुंजियों को उत्पन्न करने के लिए पोटीन का उपयोग करें।
  2. SSH कुंजियाँ बनाने के लिए DigitalOcean का पालन ​​करें ।
  3. सार्वजनिक कुंजी को S3> MyBucket> Keypair पर अपलोड करें
  4. अपनी निजी कुंजी सहेजें और सुरक्षित करें।

किसी भी लिनक्स एएमआई के लॉन्च के दौरान निम्नलिखित चरण महत्वपूर्ण हैं।

  1. सुनिश्चित करें कि IAM की भूमिका AmazonS3FullAccess नीति के साथ बनाई गई है। यह उदाहरण S3 बाल्टियों तक पहुँचने के लिए एक भूमिका मान लेता है। यह S3 से सार्वजनिक कुंजियों को पढ़ने और उपयोगकर्ता प्रोफ़ाइल में कॉपी करने के लिए आवश्यक है

  2. इंस्टेंसेस इंस्टेंस विवरण> उन्नत विवरण (पाठ के रूप में) में उपयोगकर्ता-डेटा अनुभाग के तहत निम्नलिखित कोड जोड़ें:

    #!/bin/bash
    usermod user 1
    usermod -aG wheel user1
    mkdir /home/user1/.ssh/
    aws s3 cp s3://MyBucket    /Keypair/user1-pub.pub /home/user1/.ssh/authorized_keys
    
    useradd user2
    usermod -aG wheel user2
    mkdir /home/user2/.ssh/
    aws s3 cp s3://MyBucket   /Keypair/user2-pub.pub /home/user2/.ssh/authorized_keys
    
    sudo -i 
    echo “user1 ALL=(ALL) NOPASSWD:ALL” >> /etc/sudoers
    echo “user2 ALL=(ALL) NOPASSWD:ALL” >> /etc/sudoers
    
    yum update -y
    

यह सेटअप User1 और User2 बनाता है और उन्हें sudo उपयोगकर्ताओं के लिए जोड़ता है । एडब्ल्यूएस S3 cp आदेश प्रतियां उपयोगकर्ताओं को अपने को S3 फ़ोल्डर से सार्वजनिक कुंजी .ssh/authorized_keys path। अंतिम अनुभाग पासवर्ड की आवश्यकता के बिना व्यवस्थापक के रूप में कमांड चलाने का है।

यहां बहुत सारे सुरक्षा सुधार हैं जिनकी सिफारिश की जा सकती है। इस उदाहरण में स्पष्ट रूप से उपयोग नहीं किए जाने पर, S3 बाल्टी को एक विशिष्ट बाल्टी तक सीमित करना और sudo में पासवर्ड के उपयोग को अक्षम करने के सुरक्षा निहितार्थों को जानना, कुछ चीजें हैं जिन्हें हाइलाइट किया जा सकता है। अपनी विशिष्ट आवश्यकताओं के आधार पर उनका बुद्धिमानी से उपयोग करें।

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