मैं AWS प्रबंधन कंसोल में अपने ec2 उदाहरण के लिए कुंजी जोड़ी कैसे बदलूं? मैं उदाहरण रोक सकता हूं, मैं नई कुंजी जोड़ी बना सकता हूं, लेकिन मुझे उदाहरण की कुंजी जोड़ी को संशोधित करने के लिए कोई लिंक दिखाई नहीं देता है।
मैं AWS प्रबंधन कंसोल में अपने ec2 उदाहरण के लिए कुंजी जोड़ी कैसे बदलूं? मैं उदाहरण रोक सकता हूं, मैं नई कुंजी जोड़ी बना सकता हूं, लेकिन मुझे उदाहरण की कुंजी जोड़ी को संशोधित करने के लिए कोई लिंक दिखाई नहीं देता है।
जवाबों:
यह उत्तर उस स्थिति में उपयोगी है जब आपके पास मौजूदा सर्वर तक एसएसएच पहुंच नहीं है (यानी आपने अपनी निजी कुंजी खो दी है)।
यदि आपके पास अभी भी SSH पहुंच है, तो कृपया नीचे दिए गए उत्तरों में से एक का उपयोग करें।
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html#replacing-lost-key-pair
एरिक हैमंड के ब्लॉग पोस्ट के लिए यहां मैंने जो किया, वह धन्यवाद है:
/dev/xvda1
मात्रा को अलग करें (आइए इसे वॉल्यूम ए कहते हैं) - यहां देखें/dev/xvdf
(या /dev/sdf
)SSH को नए माइक्रो इंस्टेंस और माउंट A के लिए वॉल्यूम /mnt/tmp
$ सुडो माउंट / देव / xvdf1 / mnt / tmp
को कॉपी ~/.ssh/authorized_keys
करें/mnt/tmp/home/ubuntu/.ssh/authorized_keys
/dev/xvda
.pem
फ़ाइल का उपयोग करके पहले की तरह लॉगिन करेंबस।
mkdir /mnt/tmp
और फिर mount /dev/xvdf /mnt/tmp
# 5 के लिए चाल करना चाहिए। और चरण 13 को मत भूलना। शायद rm ~/.ssh/known_hosts
आप उन बॉक्सों पर हैं जिनसे आप जुड़ रहे हैं।
.ssh/authorized_keys
फ़ाइल को बदलने की अनुमति दें ।
एक बार एक इंस्टेंस शुरू हो जाने के बाद, मेटा डेटा स्तर पर इंस्टेंस से जुड़ी कीपेयर को बदलने का कोई तरीका नहीं है, लेकिन आप इंस्टेंस से कनेक्ट करने के लिए आप किस ssh कुंजी का उपयोग कर सकते हैं।
अधिकांश एएमआई पर एक स्टार्टअप प्रक्रिया है जो सार्वजनिक ssh कुंजी डाउनलोड करती है और इसे .ssh / अधिकृत_की फ़ाइल में स्थापित करती है ताकि आप संबंधित निजी ssh कुंजी का उपयोग करके उस उपयोगकर्ता के रूप में ssh कर सकें।
यदि आप उदाहरण के लिए एक्सेस करने के लिए किस ssh कुंजी का उपयोग करना चाहते हैं, तो आप स्वयं ही अधिकृत_की फ़ाइल को उदाहरण पर संपादित करना चाहते हैं और अपनी नई ssh सार्वजनिक कुंजी में परिवर्तित कर सकते हैं।
अधिकृत_कील्स फ़ाइल .ssh उपनिर्देशिका के अंतर्गत है जिस उपयोगकर्ता के रूप में आप लॉग इन कर रहे हैं। आपके द्वारा चलाए जा रहे AMI के आधार पर, यह निम्नलिखित में से एक हो सकता है:
/home/ec2-user/.ssh/authorized_keys
/home/ubuntu/.ssh/authorized_keys
/root/.ssh/authorized_keys
किसी अधिकृत_की फ़ाइल को संपादित करने के बाद, फ़ाइल को संपादित करने के लिए आप जिस सत्र का उपयोग कर रहे हैं, उसे डिस्कनेक्ट करने से पहले पुष्टि करने के लिए हमेशा एक अलग टर्मिनल का उपयोग करें। आप एक गलती नहीं करना चाहते हैं और अपने आप को पूरी तरह से उदाहरण से बाहर कर सकते हैं।
जब आप EC2 पर ssh कीपेयर के बारे में सोच रहे होते हैं, तो मैं आपको Amazon के लिए कीपर बनाने के बजाय EC2 में अपनी निजी ssh सार्वजनिक कुंजी अपलोड करने की सलाह देता हूं।
यहाँ एक लेख मैंने इस बारे में लिखा है:
अमेज़ॅन EC2 http://alestic.com/2010/10/ec2-ssh-keys पर व्यक्तिगत ssh कुंजी अपलोड करना
यह केवल आपके द्वारा चलाए जाने वाले नए उदाहरणों पर लागू होगा।
.pem
मेरे मैक पर निजी कुंजी फ़ाइल प्राप्त की , हालांकि ssh -i key.pem
प्रमाणित नहीं करता है (अनुमति अस्वीकृत (publickey))। कुंजी जोड़ी नाम के तहत EC2 प्रबंधन कंसोल में यह कुछ भी नहीं सूचीबद्ध करता है। यह मेरे लिए चिंताजनक है। मैं इसे कैसे सेट कर सकता हूं? यह प्रबंधन कंसोल पर आधारित प्रतीत होता है कि मेरे द्वारा कॉन्फ़िगर किया गया कोई भी कुंजी उदाहरण के लिए असाइन नहीं किया गया है!
अपने AWS पेम को डाउनलोड करने के बाद इस कमांड को चलाएँ।
ssh-keygen -f YOURKEY.pem -y
फिर आउटपुट को डंप करें authorized_keys
।
या अपने AWS उदाहरण के लिए pem फ़ाइल की प्रतिलिपि बनाएँ और निम्नलिखित आदेशों पर अमल करें
chmod 600 YOURKEY.pem
और फिर
ssh-keygen -f YOURKEY.pem -y >> ~/.ssh/authorized_keys
AWS EC2 समर्थन से निर्देश:
यह अद्यतन अधिकृत_की फ़ाइल को बचाएगा
अब अपने नए कुंजी पै का उपयोग करके अपने उदाहरण के लिए एक नया SSH सत्र खोलने का प्रयास करें
जब आपने पुष्टि कर ली है कि आप नई कुंजी जोड़ी का उपयोग करके SSH में सक्षम हैं, तो आप .ssh / अधिकृत_की और पुरानी कुंजी को हटा सकते हैं।
शैगी टिप्पणी का उत्तर:
यदि आप वॉल्यूम को अलग करने के लिए AWS कंसोल का उपयोग करने की तुलना में उदाहरण (जैसे कुंजी दूषित है) से कनेक्ट करने में असमर्थ हैं ( http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-digaching-volume.html ) और इसे कार्यशील उदाहरण के लिए फिर से सेट करें, वॉल्यूम पर कुंजी को बदलने और इसे पिछले उदाहरण पर वापस करने के लिए रीटच करें।
मैंने देखा कि जब इलास्टिक बीनस्टॉक द्वारा प्रबंधित किया जाता है, तो आप अपनी सक्रिय EC2 कुंजी जोड़ी को बदल सकते हैं। इलास्टिक बीनस्टॉक> कॉन्फ़िगरेशन> सुरक्षा के तहत, EC2 कुंजी जोड़ी ड्रॉप-डाउन से नई कुंजी चुनें । यदि आपको यकीन है तो आपको यह संदेश दिखाई देगा:
EC2KeyName: EC2KeyName सेटिंग्स को बदलने का विकल्प तुरंत प्रभावी नहीं होगा। आपके मौजूदा EC2 उदाहरणों में से प्रत्येक को बदल दिया जाएगा और आपकी नई सेटिंग्स तब प्रभावी होंगी।
ऐसा होने पर मेरा उदाहरण पहले ही समाप्त कर दिया गया था। यह तब शुरू हुआ, समाप्त हुआ, और फिर से शुरू हुआ। स्पष्ट रूप से "प्रतिस्थापित" का अर्थ है एक नया उदाहरण समाप्त करना और बनाना। यदि आपने अपने बूट वॉल्यूम को संशोधित किया है, तो पहले एक एएमआई बनाएं, फिर उस एएमआई को उसी एलास्टिक बीनस्टॉक> कॉन्फ़िगरेशन> इंस्टेंस फॉर्म में कस्टम एएमआई आईडी के रूप में निर्दिष्ट करें । यह EC2 उदाहरणों को बदलने के बारे में भी चेतावनी देता है।
अपनी EC2 कुंजी जोड़ी और कस्टम AMI ID को संशोधित करने के बाद, और दोनों के बारे में चेतावनी देखने के बाद, जारी रखने के लिए सहेजें पर क्लिक करें ।
याद रखें कि जब उदाहरण को फिर से बनाया जाता है तो IP पता बदल जाता है, इसलिए आपको SSH के माध्यम से कनेक्ट करते समय EC2 कंसोल से उपयोग करने के लिए एक नया IP पता प्राप्त करना होगा।
मैं इस दृष्टिकोण से गुज़रा, और कुछ समय बाद, यह काम करने में सक्षम हो गया। वास्तविक आदेशों की कमी ने इसे कठिन बना दिया, लेकिन मैंने इसे समझ लिया। कैसे - बहुत आसान दृष्टिकोण पाया गया और कुछ ही समय बाद परीक्षण किया गया:
यदि नीचे दिए गए चरणों का पालन किया जाता है तो इससे बहुत समय की बचत होगी और रनिंग इंस्टेंस को रोकने की कोई आवश्यकता नहीं होगी।
बस इतना ही। आनंद लें :)
मेरा मानना है कि सबसे सरल aproach है:
यदि आप ElasticBeanstalk प्लेटफॉर्म का उपयोग कर रहे हैं, तो आप जा कर कुंजियाँ बदल सकते हैं:
यह वर्तमान उदाहरण को समाप्त करेगा और चुने हुए कुंजी / सेटिंग्स के साथ नया बनाता है।
इस प्रश्न में दो परिदृश्य पूछे गए हैं: -
1) आपके पास .pem फ़ाइल तक पहुंच नहीं है, इसलिए आप एक नया बनाना चाहते हैं।
2) आपके पास है। आपके साथ pem फ़ाइल एक्सेस है लेकिन आप बस कुछ भेद्यता या सुरक्षा उद्देश्यों के लिए एक नई। pem फ़ाइल को बदलना या बनाना चाहते हैं ।
इसलिए यदि आपने अपनी चाबियाँ खो दी हैं तो आप स्क्रॉल कर सकते हैं और अन्य उत्तर देख सकते हैं । लेकिन अगर आप बस अपने .pem फ़ाइल को सुरक्षा उद्देश्यों के लिए बदलते हैं तो चरणों का पालन करें: -
1) AWS कंसोल लॉगिन पर जाएं और वहां पर की-पेयर सेक्शन से एक नई। Pem फाइल बनाएं। यह स्वचालित रूप से आपके पीसी में .pem फ़ाइल डाउनलोड करेगा
2) यदि आप Linux / ubuntu का उपयोग कर रहे हैं, तो ४०० से नीचे की अनुमति को बदल दें
chmod 400 yournewfile.pem
3) अपने स्थानीय मशीन में नए डाउनलोड किए गए फ़ाइल का RSA उत्पन्न करें
ssh-keygen -f yournewfile.pem -y
4) RSA कोड को यहां से कॉपी करें
5) अब पिछले। Pem फ़ाइल के माध्यम से अपने उदाहरण के लिए SSH
ssh -i oldpemfileName.pem username@ipaddress
sudo vim ~/.ssh/authorized_keys
6) एक-दो लाइनें स्पेस दें और यहां नई फाइल के कॉपी किए हुए RSA को पेस्ट करें और फिर फाइल को सेव करें
7) अब आपकी नई। Pem फाइल रनिंग इंस्टेंस से जुड़ी हुई है
8) यदि आप पिछली .pem फ़ाइल एक्सेस को अक्षम करना चाहते हैं तो बस संपादित करें
sudo vim ~/.ssh/authorized_keys
फ़ाइल और पिछले RSA को यहां से हटाएं या बदलें।
नोट: - ध्यान से हटाएं ताकि नव निर्मित RSA परिवर्तित न हो।
इस तरह, आप अपने चल रहे इंस्टेंस के साथ नई। Pem फ़ाइल को बदल / कनेक्ट कर सकते हैं।
आप सुरक्षा उद्देश्यों के कारण पहले से उत्पन्न। Pem फ़ाइल तक पहुँच रद्द कर सकते हैं।
आशा है कि यह मदद करेगा!
सबसे सरल समाधान सामग्री की प्रतिलिपि बनाना है
~/.ssh/id_rsa.pub
आपके AWS उदाहरण के अधिकृत_कीप में
~/.ssh/authorized_keys
यह आपको ssh कमांड के लिए pem फ़ाइल निर्दिष्ट किए बिना EC2 उदाहरण में ssh करने की अनुमति देगा। एक बार जब आप इसे कनेक्ट करने का परीक्षण कर लेते हैं, तो आप अन्य सभी कुंजियों को हटा सकते हैं।
यदि आपको इसे किसी और के साथ साझा करने के लिए एक नई कुंजी बनाने की आवश्यकता है, तो आप ऐसा कर सकते हैं:
ssh-keygen -t rsa
जो निजी key.pem फ़ाइल बनाएगा, और आप इसके साथ सार्वजनिक कुंजी प्राप्त कर सकते हैं:
ssh-keygen -f private_key.pem -y > public_key.pub
जिस किसी के पास भी प्राइवेट_की.पीएम है वह इससे जुड़ सकेगा
ssh user@host.com -i private_key.pem
~/.ssh/authorized_keys
जब मैं SSH aws उदाहरण भी नहीं दे सकता तो मैं कैसे पहुँच सकता हूँ ?
आपको रूट डिवाइस को घुमाने और SSH सार्वजनिक कुंजी को बदलने की आवश्यकता नहीं है authorized_keys
। इसके लिए आप किसी भी उदाहरण के लिए ssh कुंजियों को जोड़ने के लिए userdata का उपयोग कर सकते हैं। उसके लिए पहले आपको AWS कंसोल का उपयोग करके या ssh-keygen के माध्यम से एक नया KeyPair बनाने की आवश्यकता है।
ssh-keygen -f YOURKEY.pem -y
यह आपके नए SSH KeyPair के लिए सार्वजनिक कुंजी उत्पन्न करेगा, इस सार्वजनिक कुंजी की प्रतिलिपि बनाएँ और इसे नीचे स्क्रिप्ट में उपयोग करें।
Content-Type: multipart/mixed; boundary="//"
MIME-Version: 1.0
--//
Content-Type: text/cloud-config; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="cloud-config.txt"
#cloud-config
cloud_final_modules:
- [scripts-user, always]
--//
Content-Type: text/x-shellscript; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="userdata.txt"
#!/bin/bash
/bin/echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6xigPPA/BAjDPJFflqNuJt5QY5IBeBwkVoow/uBJ8Rorke/GT4KMHJ3Ap2HjsvjYrkQaKANFDfqrizCmb5PfAovUjojvU1M8jYcjkwPG6hIcAXrD5yXdNcZkE7hGK4qf2BRY57E3s25Ay3zKjvdMaTplbJ4yfM0UAccmhKw/SmH0osFhkvQp/wVDzo0PyLErnuLQ5UoMAIYI6TUpOjmTOX9OI/k/zUHOKjHNJ1cFBdpnLTLdsUbvIJbmJ6oxjSrOSTuc5mk7M8HHOJQ9JITGb5LvJgJ9Bcd8gayTXo58BukbkwAX7WsqCmac4OXMNoMOpZ1Cj6BVOOjhluOgYZbLr" >> /home/hardeep/.ssh/authorized_keys
--//
पुनरारंभ करने के बाद मशीन में निर्दिष्ट SSH publch कुंजी होगी। पहले पुनरारंभ के बाद उपयोगकर्ताडेटा निकालें। स्टार्टअप पर उपयोगकर्ताडेट के बारे में और पढ़ें ।
चेतावनी: उपयोगकर्ता डेटा को फिर से साफ़ करना न भूलें। अन्यथा यह कुंजी हर इंस्टेंस स्टार्ट पर धकेल दी जाएगी। चरण-दर-चरण निर्देश ।
#cloud-config
bootcmd:
- echo 'ssh-rsa AAAAB3Nz...' > /root/.ssh/authorized_keys
मैंने नीचे दिए गए चरणों की कोशिश की है और इसने उदाहरण को रोके बिना काम किया है। मेरी आवश्यकता थी - जैसा कि मैंने अपनी क्लाइंट मशीन को बदल दिया है, पुरानी। Pem फ़ाइल मुझे ec2 उदाहरण में लॉग इन करने की अनुमति नहीं दे रही थी।
आपको उस फाइल में आपकी पुरानी चाबियां दिखाई देंगी।
ssh-keygen -f your_PEM_FILE.pem -y यह एक कुंजी उत्पन्न करेगा। चरण # 1 में खोले गए कुंजी को ~ / .sh / अधिकृत_कीज में जोड़ें। पुरानी कुंजी को हटाने की आवश्यकता नहीं है।
AWS कंसोल से, एक नई कुंजी जोड़ी बनाएं। इसे अपनी नई मशीन में स्टोर करें। पुरानी pem फ़ाइल में इसका नाम बदलें - कारण पुरानी pem फ़ाइल अभी भी AWS में ec2 उदाहरण से जुड़ी है।
सब कुछ कर दिया।
मैं अपनी नई क्लाइंट मशीन से AWS ec2 में लॉग इन करने में सक्षम हूं।
आपके पास अपने EC2 उदाहरण की कुंजी को बदलने के लिए कई विकल्प हैं।
चूंकि पहला विकल्प उत्तर में या आपकी पसंद के खोज इंजन पर आसानी से मिल सकता है, इसलिए मैं सिस्टम मैनेजर पर ध्यान केंद्रित करना चाहता हूं।
Systems Manager
Automation
बाईं ओर क्लिक करें ।Execute Automation
AWSSupport-TroubleshootSSH
(आमतौर पर यह अंतिम पृष्ठ पर है)आप आधिकारिक AWS प्रलेखन पर अधिक जानकारी पा सकते हैं
Yegor256 के जवाब ने मेरे लिए काम किया, लेकिन मुझे लगा कि मैं सिर्फ कुछ टिप्पणियों को जोड़ने में मदद करूंगा, जो बढ़ते ड्राइव (मेरे जैसे!) पर इतने अच्छे नहीं हैं।
अमेज़ॅन आपको एक विकल्प देता है कि आप इसे संलग्न करते समय वॉल्यूम को क्या नाम देना चाहते हैं। आपने / dev / sda - / dev / sdp से सीमा में एक नाम का उपयोग किया है। उबंटू के नए संस्करण तब नाम बदल देंगे, जो आपने वहाँ रखे हैं / देव / xvd (x) या उस प्रभाव के लिए कुछ।
तो मेरे लिए, मैंने AWS में माउंट नाम के रूप में / dev / sdp को चुना, फिर मैंने सर्वर में लॉग इन किया, और पता चला कि उबंटू ने मेरा वॉल्यूम / देव / xvdp1 में बदल दिया था)। मुझे तब ड्राइव को माउंट करना था - मेरे लिए मुझे इसे इस तरह करना था:
mount -t ext4 xvdp1 /mnt/tmp
उन सभी हुप्स के माध्यम से कूदने के बाद मैं अपनी फ़ाइलों को / mnt / tmp पर एक्सेस कर सकता था
यह तभी काम करेगा जब आपके पास उस कुंजी तक पहुंच होगी जिसे आप कुंजी को बदलना / जोड़ना चाहते हैं। आप एक नई कुंजी जोड़ी बना सकते हैं। या यदि आपके पास पहले से ही कुंजी जोड़ी है, तो आप अपने उदाहरण पर अधिकृत_की फ़ाइल में नई जोड़ी की सार्वजनिक कुंजी पेस्ट कर सकते हैं।
vim। ssh / अधिकृत_की
अब आप उस जोड़ी के लिए निजी कुंजी का उपयोग कर सकते हैं और लॉग इन कर सकते हैं।
उम्मीद है की यह मदद करेगा।
मेरा मुद्दा था, मैंने IP
जनता के बजाय कोशिश की DNS
। तब मैंने public DNS
इसके साथ प्रयास किया और इसका समाधान किया
यदि आप VM में लॉगिन नहीं कर पा रहे हैं और अपनी ssh कुंजी को हटा दिया है और आप नीचे दिए चरणों का उपयोग करके अपने ec2 की कुंजी जोड़ी को भी बदल सकते हैं। चरण 1 पर जाएं) अपने ec2 उदाहरण को रोकें। 2) VM और स्टोरेज का स्नैपशॉट लें। 3) अपने स्नैपशॉट का चयन करते समय एक नया वीएम बनाएं और अपने स्नैपशॉट से वीएम बनाएं। 4) जबकि वीएम का निर्माण आपके कीपर को डाउनलोड करता है। 5) एक बार अपने वीएम यूपी के साथ आप एक नई कुंजी जोड़ी के साथ ssh कर सकते हैं और आपका डेटा भी वापस आ जाएगा।
आप क्या कर सकते है...
एक नई इंस्टेंस प्रोफ़ाइल / भूमिका बनाएँ जिसमें AmazonEC2RoleForSSM नीति संलग्न हो।
इस इंस्टेंस प्रोफाइल को उदाहरण में संलग्न करें।
टिप्स के लिए शुक्रिया दोस्तों। जब मैं प्रमुख जोड़े को आराम करने की आवश्यकता होगी तो निश्चित रूप से उन्हें ध्यान में रखूंगा। हालांकि, दक्षता और आलस्य के हित में मैं कुछ और लेकर आया हूं:
आशा है कि यह आपके काम आ सकता है और आपको कुछ समय बचा सकता है और साथ ही इस तरह के सामान से मिलने वाले सफेद बालों की मात्रा को कम करेगा :)