कैसे pem कुंजी का उपयोग किए बिना स्पष्ट रूप से EC2 से SSH को?


21

मेरे पास मेरा मुख्य OS के रूप में एक विंडो है। VMware प्लेयर का उपयोग करके, मैं एक अतिथि मशीन के रूप में एक Ubuntu सर्वर 12.4 सेटअप करता हूं। उबंटू सर्वर में "ubuntu" उपयोगकर्ता है।

मैंने एक नया EC2 उदाहरण + सेटअप pem कुंजी बनाया। विंडोज़ मशीन से, जब मैं पोटीन + पेम की का उपयोग करता हूं - मैं ssh कर सकता हूं।

मैंने अपने VMware Ubuntu सर्वर (/home/ubuntu/.ssh/) के लिए pem कुंजी जोड़ी है। इसके अलावा, मैंने निम्नलिखित अनुमतियाँ सेट की हैं: chmod 700 /home/ubuntu/.ssh chmod 600 /home/ubuntu/.ssh/*

उबंटू सर्वर के माध्यम से - मैंने सफलता के बिना ec2 उदाहरण के लिए SSH की कोशिश की ssh ubuntu@EC2_IP Permission denied (publickey) :। अगर मैंने स्पष्ट रूप से pem कुंजी का उपयोग किया है, तो यह काम करता है: ssh -i /home/ubuntu/.ssh/NAME.pem ubuntu@EC2_IP - कृपया ध्यान दें, कि मुझे कुंजी को सीधे पथ का उपयोग करना होगा, अन्यथा, मुझे मिलेगा Warning: Identity file NAME.pem not accessible: No such file or directory. Permission denied (publickey).

कृपया सलाह दें। धन्यवाद!

जवाबों:


18

डिफ़ॉल्ट रूप से SSH क्लाइंट नाम की चाबियों की तलाश करेगा id_rsa, id_dsaऔर id_ecdsaअंदर ~/.ssh/। यदि आपकी कुंजी का नाम ऐसा नहीं है, तो आपको कमांड लाइन पर इसे निर्दिष्ट करने की आवश्यकता है जैसा कि आप -iकर रहे हैं, या इसे क्लाइंट कॉन्फ़िगरेशन में निर्दिष्ट करें।

~/.ssh/configजब आप EC2 में SSHing कर रहे हों तो आप इस कुंजी को स्वचालित रूप से चुनने के लिए कुछ इस तरह से जोड़ सकते हैं :

Host *.compute-1.amazonaws.com
    IdentityFile ~/.ssh/ec2_rsa


2

आप अपनी निजी कुंजी का नाम कैसे देते हैं? इसमें डिफ़ॉल्ट id_rsa फ़ाइल नाम होना चाहिए (/ pome फ़ाइल को /home/ubuntu/.ssh/id_rs पर नाम बदलें)


इसे eldad.pem (AWS का डिफ़ॉल्ट नाम) कहा जाता है। मैंने इसका नाम बदलकर id_rsa कर दिया और इसने काम किया। क्या इसे वर्तमान नाम में रखने और अभी भी इसका उपयोग करने का एक तरीका है?
user798562

हां, डैनियल ने पहले ही अपने जवाब में इसके बारे में लिखा :)
आंद्रेई मिखलत्सोव

1

आप निजी कुंजी को स्पष्ट रूप से निर्दिष्ट करने के लिए उपयोग कर सकते हैं ssh-agentऔर इससे ssh-addबच सकते हैं ।

आप कमांड को अपने में डाल सकते हैं .profileया .bashrcवे हर बार जब आप लॉग इन करते हैं तो निष्पादित हो जाते हैं। आप इस पोस्ट के निचले भाग में एक उदाहरण स्टार्टअप स्क्रिप्ट पा सकते हैं ।


मैंने ऐसा किया, लेकिन जब मैं रिबूट करता हूं - मुझे फिर से ऐसा करने की जरूरत है। उससे बचने का कोई उपाय?
user798562

इसमें शामिल करने के लिए मेरे उत्तर का संपादन किया।
डेविड लेवेस्क

0

Ssh क्लाइंट identify fileकॉन्फ़िगरेशन सेट के आधार पर खोजता है /etc/ssh/ssh_config। इसलिए आप वहां पहचान फ़ाइल निर्दिष्ट कर सकते हैं, और याद रखें कि आपके पास ssh क्लाइंट कॉन्फ़िगर फ़ाइल में सूचीबद्ध कई पहचान फ़ाइलें हो सकती हैं। Ssh मैन पेज से -

    -i identity_file
         Selects a file from which the identity (private key) for public key authentication is read.  The default is ~/.ssh/identity
         for protocol version 1, and ~/.ssh/id_dsa, ~/.ssh/id_ecdsa and ~/.ssh/id_rsa for protocol version 2.  Identity files may also
         be specified on a per-host basis in the configuration file.  It is possible to have multiple -i options (and multiple identiâ
         ties specified in configuration files).

उदाहरण के लिए, RSA कुंजी के लिए, डिफ़ॉल्ट स्थान ~ / .ssh / id_rsa है। जैसा कि आंद्रेई मिखलत्सोव ने सुझाव दिया, आप अपनी निजी कुंजी को / home / ubuntu / ssh / id_rsa में रख सकते हैं और इसे कमांड लाइन पर निर्दिष्ट किए बिना कनेक्ट कर पाएंगे। यदि वह फ़ाइल नाम पहले से मौजूद है और दूसरी निजी कुंजी रखती है, तो आप अभी भी IdentityFileपैरामीटर पर अपनी ssh क्लाइंट कॉन्फ़िगर फ़ाइल को कस्टमाइज़ कर सकते हैं ।

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