लिनक्स पर SSH कुंजी-आधारित प्रमाणीकरण लागू करें
SSH (सुरक्षित शेल) एक प्रोटोकॉल है जो SSH क्लाइंट और रिमोट सर्वर के बीच क्रिप्टोग्राफिक रूप से सुरक्षित कनेक्शन बनाता है.
SSH का उपयोग करके आप दूरस्थ सर्वर को सुरक्षित रूप से प्रबंधित और प्रबंधित कर सकते हैं। यह कई मायनों में मददगार हो सकता है.
- मल्टी-सर्वर परिनियोजन
- दूर से सेवाओं को रोकना / शुरू करना
- स्वचालन
और आपकी सारी रचनात्मकता (उम्मीद) …
एक sysadmin के रूप में, यह जानने के लिए मूल सामान की तरह है.
आइए जानें कैसे…
मैं एक निजी कुंजी और एक सार्वजनिक कुंजी उत्पन्न करूंगा। निजी कुंजी को आपके ssh क्लाइंट मशीन पर संग्रहीत किया जाना चाहिए और सुरक्षित रखा जाना चाहिए। SSH क्लाइंट मशीन से उस सर्वर में लॉगिन करने के लिए सार्वजनिक कुंजी को दूरस्थ सर्वर पर कॉपी किया जाना चाहिए, जिसमें पासवर्ड की आवश्यकता न हो.
आप निम्नलिखित सीखेंगे.
- SSH स्थापित करें (यदि पहले से ही आवश्यक नहीं है)
- SSH कुंजी उत्पन्न करें
- दूरस्थ सर्वर पर SSH कुंजी की प्रतिलिपि बनाएँ
- SSH का उपयोग कर दूरस्थ सर्वर में प्रवेश करें
प्रदर्शन उद्देश्य के लिए, मेरे पास आईपी पते के नीचे 2 सर्वर हैं, एक सिस्टम एक क्लाइंट है और दूसरा एक सर्वर है जिस पर मैं क्लाइंट मशीन से ssh के माध्यम से लॉग इन करूंगा।.
- ग्राहक (उपयोगकर्ता -> geekflare): 192.168.56.102
- रिमोट (उपयोगकर्ता -> ubuntu): 192.168.56.101
Contents
एसएसएच की स्थापना
इस आलेख में वर्णित चरणों का पालन करने से पहले, सुनिश्चित करें कि ओपनश-सर्वर सर्वर पर स्थापित है। यदि यह स्थापित नहीं है, तो स्थापित करने के लिए नीचे दिए गए कमांड चलाएं.
sudo apt-get install ओपनश-सर्वर
sudo systemctl सक्षम ssh
sudo systemctl शुरू ssh
यह सिस्टम पर स्थापित है या नहीं, यह जांचने के लिए आप ssh कमांड चला सकते हैं.
[ईमेल संरक्षित]: ~ $ ssh
उपयोग: ssh [-46AaCfGgKkMNnqsTtVvXxYy] [-B bind_interface]
[-b bind_address] [-c cipher_spec] [-D [bind_address]]]]
[-E log_file] [-E भागने_चर] [-F configfile] [-I pkcs11]
[-आई आइडेंटिटी_फाइल] [-जे [[ईमेल संरक्षित]] होस्ट [: पोर्ट]] [-L पता]
[-l login_name] [-m mac_spec] [-O ctl_cmd] [-o विकल्प] [-p port]
[-Q query_option] [-R पता] [-S ctl_path] [-W होस्ट: पोर्ट]
[-w local_tun [: Remote_tun]] गंतव्य [कमांड]
SSH कुंजी उत्पन्न करें
यह एक क्लाइंट सर्वर पर किया जाना चाहिए.
SSH कुंजी जनरेट करने के लिए ssh-keygen कमांड चलाएँ। जब यह फ़ाइल, पासफ़्रेज़, उसी पासफ़्रेज़ के लिए पूछता है तो बस एंटर दबाएं। यह डिफ़ॉल्ट रूप से ~ / .shsh निर्देशिका में कुंजियों की एक जोड़ी उत्पन्न करता है। Id_rsa निजी कुंजी है और id_rsa.pub सहयोगी सार्वजनिक कुंजी है.
[ईमेल संरक्षित]: ~ $ ssh-keygen
सार्वजनिक / निजी rsa कुंजी जोड़ी बनाना.
वह फ़ाइल दर्ज करें जिसमें कुंजी (/home/geekflare/.ssh/id_rsa) सहेजें:
पासफ़्रेज़ दर्ज करें (बिना पासफ़्रेज़ के खाली):
फिर से वही पासफ़्रेज़ दर्ज करें:
आपकी पहचान /home/geekflare/.ssh/id_rsa में सहेज ली गई है.
आपकी सार्वजनिक कुंजी को /home/geekflare/.ssh/id_rsa.pub में सहेजा गया है.
मुख्य फिंगरप्रिंट है:
SHA256: 3XDm62tzJegGm8oAmFYCyeFZovJOuU42zNgyn9GzH30 [ईमेल संरक्षित]
मुख्य यादृच्छिक छवि है:
+—[आरएसए 2048]—-+
| ओ + .. |
| + ओ + |
| ऊ। । । ओ |
| .. *। *
| बी। एस। ओ। |
| ओ ओ! । । … |
| + @ ओ ओ। ई =। ओ |
| बी + ओ + .ओ =। |
| + … ओ। oo + |
+—-[SHA256]—–+
यह ~ / .shsh निर्देशिका में दो नई फाइलें उत्पन्न करेगा.
दूरस्थ सर्वर के लिए SSH कुंजी की प्रतिलिपि बनाएँ
एक दूरस्थ सर्वर पर निजी कुंजी को कॉपी किया जाना चाहिए। अधिकांश सर्वरों में पहले से ही यह फ़ोल्डर होना चाहिए यदि नहीं, तो आपको एक फ़ोल्डर बनाने की आवश्यकता है.
और, ऐसा करने के लिए:
- उस उपयोगकर्ता के साथ दूरस्थ सर्वर में प्रवेश करें जो आप कनेक्ट करना चाहते हैं। मेरे मामले में, इसके ubuntu
- सुनिश्चित करें कि वर्तमान कार्यशील निर्देशिका उपयोगकर्ता की होम निर्देशिका है और फिर एक .ssh फ़ोल्डर बनाएं। एक बनाने के लिए आप निम्न एकल कमांड का भी उपयोग कर सकते हैं
mkdir -p ~ / .ssh
अगर आपके पास पहले से .ssh फोल्डर है तो उसका बैकअप ले लें.
इसके बाद, क्लाइंट सर्वर से सार्वजनिक कुंजी को धक्का दें.
क्लाइंट मशीन (192.168.56.102) पर, एक अधिकृत_कीs फ़ाइल के अंदर दूरस्थ सर्वर पर सार्वजनिक कुंजी की प्रतिलिपि बनाने के लिए नीचे कमांड चलाएँ।.
[ईमेल संरक्षित]: ~ $ बिल्ली। ssh / id_rsa.pub | ssh [ईमेल संरक्षित] ‘बिल्ली >> .ssh / authorized_keys ‘
[ईमेल संरक्षित]पासवर्ड:
दूरस्थ सर्वर पर अधिकृत_की फ़ाइल पर अनुमतियाँ सेट करने के लिए नीचे दी गई कमांड चलाएँ.
[ईमेल संरक्षित]: ~ $ ssh [ईमेल संरक्षित] "chmod 700 .ssh; chmod 640। ssh / अधिकृत_की"
महान, इस निष्कर्ष कुंजी का आदान-प्रदान किया जाता है और अनुमति दी जाती है.
SSH का उपयोग कर रिमोट सर्वर पर लॉगिन करें
यह देखने के लिए परीक्षण करें कि क्या यह काम करता है!
ग्राहक मशीन (192.168.56.102) से geekflare उपयोगकर्ता के रूप में दूरस्थ सर्वर (192.168.56.101) पर लॉगिन करें.
परीक्षण करने के लिए नीचे कमांड चलाएँ, उसने इस बार पासवर्ड नहीं पूछा.
[ईमेल संरक्षित]: ~ $ ssh [ईमेल संरक्षित]
Ubuntu 16.04.6 LTS (GNU / Linux 4.4.0-151-जेनेरिक i686) में आपका स्वागत है
* प्रलेखन: https://help.ubuntu.com
* प्रबंधन: https://landscape.canonical.com
* समर्थन: https://ubuntu.com/ नुकसान
346 पैकेज अपडेट किए जा सकते हैं.
11 अद्यतन सुरक्षा अद्यतन हैं.
अंतिम लॉगिन: मोन जून 17 00:10:32 2019 192.168.56.101 से
हेयर यू गो…
मैंने रिमोट सर्वर में सफलतापूर्वक लॉग इन किया है। कमांड के नीचे चलने से रिमोट मशीन का आईपी विवरण मिलेगा.
[ईमेल संरक्षित]: ~ $ ifconfig
enp0s3 लिंक एनकैप: ईथरनेट HWaddr 08: 00: 27: 9b: 47: 86
inet addr: 10.0.2.15 Bcast: 10.0.2.255 मास्क: 255.255.255.0
inet6 addr: fe80 :: 5c62: 3267: b752: fe5d / 64 स्कोप: लिंक
UP BROADCAST RUNNING MULTICAST MTU: 1500 मीट्रिक: 1
आरएक्स पैकेट: 20239 त्रुटियां: 0 गिरा: 0 ओवररन: 0 फ्रेम: 0
TX पैकेट: 5406 त्रुटियां: 0 गिरा: 0 ओवररन: 0 वाहक: 0
टकराव: 0 txqueuelen: 1000
RX बाइट्स: 22678039 (22.6 MB) TX बाइट्स: 701710 (701.7 KB)
enp0s8 लिंक एनकैप: ईथरनेट एचडीडीआर 08: 00: 27: a9: 4a: 6b
inet addr: 192.168.56.101 Bcast: 192.168.56.255 मुखौटा: 255.2.2.2.2.0
inet6 addr: fe80 :: 54a9: 761c: 9034: 21a2 / 64 स्कोप: लिंक
UP BROADCAST RUNNING MULTICAST MTU: 1500 मीट्रिक: 1
आरएक्स पैकेट: 330 त्रुटियां: 0 गिरा: 0 ओवररन: 0 फ्रेम: 0
TX पैकेट: 197 त्रुटियां: 0 गिरा: 0 ओवररन: 0 वाहक: 0
टकराव: 0 txqueuelen: 1000
RX बाइट्स: 42847 (42.8 KB) TX बाइट्स: 32774 (32.7 KB)
लो लिंक एनकैप: लोकल लूपबैक
inet addr: 127.0.0.1 मास्क: 255.0.0.0
inet6 addr: :: 1/128 स्कोप: होस्ट
UP LOOPBACK रनिंग MTU: 65536 मीट्रिक: 1
आरएक्स पैकेट: 997 त्रुटियां: 0 गिरा: 0 ओवररन: 0 फ्रेम: 0
TX पैकेट: 997 त्रुटियां: 0 गिरा: 0 ओवररन: 0 वाहक: 0
टकराव: 0 txqueuelen: 1
RX बाइट्स: 79654 (79.6 KB) TX बाइट्स: 79654 (79.6 KB)
निष्कर्ष
SSH कुंजी विनिमय सेट करना बहुत सीधा है जैसा कि आप देख सकते हैं। मुझे आशा है कि यह आपकी मदद करता है और लिनक्स प्रशासन को सीखने और समस्या निवारण में रुचि रखता है उदमी पाठ्यक्रम.