यह अवलोकन बताएगा कि रिमोट सर्वर पर ssh कैसे करें और पासवर्ड दर्ज किए बिना कनेक्शन बनाएं।
मुझे अपने Linux सर्वर पर रिमोटली SSH करने की काफी आवश्यकता होती है, और इतने सारे पासवर्ड याद रखना और हर बार टाइप करना दर्दनाक होता है जब मैं लॉग इन करना चाहता हूं। मैंने हाल ही में पासवर्ड टाइप किए बिना अपने सर्वर में SSH करने का एक साफ तरीका खोजा। OpenSSH आपको रिमोटली कमांड निष्पादित करने की भी अनुमति देता है, और ऐसा करते समय पासवर्ड दर्ज न करने का मतलब है कि मैं कुछ ऑटोमेटेड टास्क रिमोटली चला सकता हूं। फिर से, यह बहुत मददगार हो सकता है। वहां किसी भी सनकी के लिए यह विधि काफी सुरक्षित है। वास्तव में, मेरी राय में यह शायद पासवर्ड दर्ज करने से अधिक सुरक्षित है। आइए रिमोट सर्वर पर पासवर्ड-रहित कनेक्शन सेटअप करने के साथ शुरुआत करें। ध्यान दें कि यह प्रक्रिया केवल Linux या UNIX मशीन पर काम करेगी। प्रक्रिया स्वयं बहुत सीधी है।
पहला चरण सर्वर पर सुरक्षित प्रमाणीकरण के लिए पब्लिक की बनाना है। अपने Linux डेस्कटॉप पर एक शेल टर्मिनल लॉन्च करें और निम्न कमांड चलाएं:
# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/calvin/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/calvin/.ssh/id_rsa.
Your public key has been saved in /home/calvin/.ssh/id_rsa.pub.
यह चरण पब्लिक की जनरेट करता है और इसे फ़ाइल /home/calvin/.ssh/id_rsa.pub में स्टोर करता है। जब पूछा जाए कि आप किस फ़ाइल में की को लिखना चाहते हैं, तो सुझाए गए विकल्प को चुनने के लिए बस एंटर दबाएं। इसी तरह, जब पासफ्रेज़ के लिए प्रॉम्प्ट किया जाए तो एंटर कुंजी को दो बार दबाएं। यह फ़ाइल आपके होम डायरेक्टरी में, .ssh फ़ोल्डर में स्टोर होती है जिसमें SSH सर्वर की सभी कॉन्फ़िगरेशन फ़ाइलें होती हैं। तो, अगला, आपको इस फ़ाइल को उस सर्वर पर कॉपी करना होगा जिस पर आप पासवर्ड के बिना SSH करना चाहते हैं।
# scp ~/.ssh/id_rsa.pub username@remoteserver.com:/home/username/
उपरोक्त कमांड में username के दोनों उदाहरणों को उस यूज़रनेम से बदलें जिसका उपयोग आप अपने रिमोट सर्वर पर लॉग ऑन करने के लिए करते हैं, और remoteserver.com को रिमोट सर्वर के होस्ट नाम या IP पते से बदलें। अब उस सर्वर में SSH करें और अपने डेस्कटॉप की पब्लिक की को सर्वर के SSH कॉन्फ़िगरेशन में जोड़ें:
# ssh username@remoteserver.com
# cat ~/id_rsa.pub >> ~/.ssh/authorized_keys2
अगला, आपको फ़ाइल ~/.ssh/authorized_keys2 की अनुमति सही ढंग से सेट करने की आवश्यकता है:
# chmod 644 ~/.ssh/authorized_keys2
यह हमेशा आवश्यक नहीं है, लेकिन मैं कई बार अनुमति समस्याओं के कारण होने वाली समस्याओं में फंस चुका हूं, इसके अलावा अनुमतियों को सही सेट करने में कोई नुकसान नहीं है। आपका काम हो गया अब। अपने रिमोट सर्वर पर SSH कनेक्शन से बाहर निकलें और फिर से ssh करें। अब आपको पासवर्ड के लिए प्रॉम्प्ट नहीं किया जाना चाहिए।
अब आप अपने रिमोट सर्वर पर बहुत सी अच्छी चीजें कर सकते हैं। उदाहरण के लिए, कमांड चलाएं:
# ssh username@remoteserver.com "uptime; df -h"
कमांड को आपके रिमोट सर्वर से वांछित आउटपुट सीधे आपके स्थानीय शेल पर देना चाहिए, बिना आपको पासवर्ड के लिए प्रॉम्प्ट किए। आप अपने रिमोट सर्वर से फ़ाइलों को कॉपी भी कर सकते हैं बिना पासवर्ड दर्ज करने की चिंता किए। इसका मतलब है कि आप अपने डेली बैकअप को अपने रिमोट सर्वर से अपने स्थानीय डेस्कटॉप पर हर दिन एक साधारण शेल स्क्रिप्ट का उपयोग करके डाउनलोड कर सकते हैं। यह काफी शक्तिशाली टूल है। इसका उपयोग सावधानी से करें।