अपने पासवर्ड को दर्ज किए बिना SSH पर फ़ाइलों की दूरस्थ रूप से प्रतिलिपि कैसे करें
SSH एक लाइफसेवर है जब आपको कंप्यूटर को दूरस्थ रूप से प्रबंधित करने की आवश्यकता होती है, लेकिन क्या आप जानते हैं कि आप फ़ाइलों को अपलोड और डाउनलोड भी कर सकते हैं? SSH कुंजियों का उपयोग करके, आप पासवर्ड दर्ज करना छोड़ सकते हैं और स्क्रिप्ट के लिए इसका उपयोग कर सकते हैं!
यह प्रक्रिया लिनक्स और मैक ओएस पर काम करती है, बशर्ते कि वे एसएसएच एक्सेस के लिए ठीक से कॉन्फ़िगर हों। यदि आप Windows का उपयोग कर रहे हैं, तो आप लिनक्स जैसी कार्यक्षमता प्राप्त करने के लिए Cygwin का उपयोग कर सकते हैं, और थोड़ा ट्विकिंग के साथ, SSH भी चलेगा.
SSH से अधिक फाइल कॉपी करना
सुरक्षित प्रतिलिपि वास्तव में उपयोगी कमांड है, और इसका उपयोग करना वास्तव में आसान है। कमांड का मूल प्रारूप इस प्रकार है:
scp [विकल्प] original_file डेस्टिनेशन_फाइल
सबसे बड़ा किकर दूरस्थ भाग को प्रारूपित करने का तरीका है। जब आप किसी दूरस्थ फ़ाइल को संबोधित करते हैं, तो आपको इसे निम्नलिखित तरीके से करने की आवश्यकता होती है:
उपयोगकर्ता @ सर्वर: path / to / फ़ाइल
सर्वर URL या IP पता हो सकता है। यह एक बृहदान्त्र द्वारा पीछा किया जाता है, फिर प्रश्न में फ़ाइल या फ़ोल्डर का पथ। आइए एक उदाहरण देखें.
scp -P 40050 डेस्कटॉप / url.txt [email protected]: ~ / डेस्कटॉप / url.txt
इस कमांड में [-पी] झंडा (ध्यान दें कि यह एक राजधानी पी है)। यह मुझे डिफ़ॉल्ट 22 के बजाय एक पोर्ट संख्या निर्दिष्ट करने की अनुमति देता है। मेरे द्वारा मेरे सिस्टम को कॉन्फ़िगर करने के तरीके के कारण यह मेरे लिए आवश्यक है.
इसके बाद, मेरी मूल फ़ाइल "url.txt" है जो "डेस्कटॉप" नामक एक निर्देशिका के अंदर है। गंतव्य फ़ाइल "~ / डेस्कटॉप / url.txt" में है जो "/user/yatri/Desktop/url.txt" के समान है। यह कमांड उपयोगकर्ता "यत्री" द्वारा रिमोट कंप्यूटर "192.168.1.50" पर चलाया जा रहा है.
क्या होगा अगर आपको इसके विपरीत करने की आवश्यकता है? आप दूरस्थ सर्वर से फ़ाइलों की प्रतिलिपि बना सकते हैं.
यहां, मैंने दूरस्थ कंप्यूटर के "~ / डेस्कटॉप /" फ़ोल्डर से अपने कंप्यूटर के "डेस्कटॉप" फ़ोल्डर में एक फ़ाइल की प्रतिलिपि बनाई है.
संपूर्ण निर्देशिकाओं की प्रतिलिपि बनाने के लिए, आपको [-r] ध्वज (ध्यान दें कि यह लोअरकेस आर है) का उपयोग करना होगा.
आप झंडे भी जोड़ सकते हैं। के बजाय
scp -P -r…
आप बस कर सकते हैं
scp -r…
यहां सबसे कठिन हिस्सा यह है कि टैब पूरा करना हमेशा काम नहीं करता है, इसलिए SSH सत्र के साथ एक और टर्मिनल चलाना उपयोगी होता है ताकि आप जान सकें कि चीजें कहां रखी जाएं.
बिना पासवर्ड के एसएसएच और एससीपी
सुरक्षित प्रति महान है। आप इसे स्क्रिप्ट में रख सकते हैं और इसे दूरस्थ कंप्यूटर पर बैकअप कर सकते हैं। समस्या यह है कि आप हमेशा पासवर्ड दर्ज करने के लिए आस-पास नहीं हो सकते हैं। और, चलो ईमानदार रहें, यह आपके पासवर्ड को एक दूरस्थ कंप्यूटर में डालने के लिए एक वास्तविक बड़ा दर्द है जो आपके पास स्पष्ट रूप से सभी समय तक पहुंच है.
खैर, हम कुंजी फ़ाइलों का उपयोग करके पासवर्ड का उपयोग कर सकते हैं। हम कंप्यूटर को दो मुख्य फाइलें उत्पन्न कर सकते हैं - एक सार्वजनिक जो रिमोट सर्वर पर है, और एक निजी जो आपके कंप्यूटर पर है और उसे सुरक्षित करने की आवश्यकता है - और इनका उपयोग पासवर्ड के बजाय किया जाएगा। बहुत सुविधाजनक, सही है?
अपने कंप्यूटर पर, निम्न कमांड दर्ज करें:
ssh-keygen -t rsa
यह दो कुंजी उत्पन्न करेगा और उन्हें इसमें डाल देगा:
~ / .Ssh /
आपकी निजी कुंजी के लिए "id_rsa" और "id_rsa.pub" नामों के साथ.
कमांड दर्ज करने के बाद, आपसे पूछा जाएगा कि कुंजी को कहाँ सहेजना है। आप उपर्युक्त चूक का उपयोग करने के लिए Enter दबा सकते हैं.
इसके बाद, आपको पासफ़्रेज़ दर्ज करने के लिए कहा जाएगा। इस रिक्त को छोड़ने के लिए Enter दबाएं, फिर पुष्टि होने पर इसे फिर से करें। अगला कदम सार्वजनिक कुंजी फ़ाइल को आपके दूरस्थ कंप्यूटर पर कॉपी करना है। आप ऐसा करने के लिए scp का उपयोग कर सकते हैं:
आपकी सार्वजनिक कुंजी का गंतव्य दूरस्थ सर्वर पर, निम्न फ़ाइल में है:
~ / .Ssh / authorized_keys2
इसके बाद सार्वजनिक कुंजी को इस फ़ाइल में जोड़ा जा सकता है, बहुत कुछ ~ / .ssh / ज्ञात_होस्ट फ़ाइल की तरह। इसका मतलब यह है कि यदि आप इस सर्वर पर अपने खाते के लिए एक और सार्वजनिक कुंजी जोड़ना चाहते हैं, तो आप दूसरी आईडी_rsa.pub की सामग्री को मौजूदा अधिकृत_की_2 फ़ाइल पर एक नई पंक्ति में कॉपी करेंगे।.
सुरक्षा संबंधी बातें
क्या यह पासवर्ड से कम सुरक्षित नहीं है?
एक व्यावहारिक अर्थ में, वास्तव में नहीं। जो निजी कुंजी उत्पन्न होती है वह आपके द्वारा उपयोग किए जा रहे कंप्यूटर पर संग्रहीत होती है, और इसे कभी भी स्थानांतरित नहीं किया जाता है, यहां तक कि सत्यापित भी नहीं किया जाता है। यह निजी कुंजी केवल उस एक सार्वजनिक कुंजी के साथ मेल खाती है, और कनेक्शन को उस कंप्यूटर से शुरू करने की आवश्यकता है जिसमें निजी कुंजी है। RSA बहुत सुरक्षित है और डिफ़ॉल्ट रूप से 2048 बिट-लंबाई का उपयोग करता है.
यह वास्तव में आपके पासवर्ड का उपयोग करने के लिए सिद्धांत के समान है। अगर किसी को आपका पासवर्ड पता है, तो आपकी सुरक्षा खिड़की से बाहर चली जाती है। यदि किसी के पास आपकी निजी कुंजी फ़ाइल है, तो किसी भी कंप्यूटर से सुरक्षा खो दी जाती है, जिसमें मैचिंग प्यूबिक कुंजी होती है, लेकिन इसके लिए उन्हें आपके कंप्यूटर तक पहुंच की आवश्यकता होती है.
क्या यह अधिक सुरक्षित हो सकता है?
आप कुंजी फ़ाइलों के साथ एक पासवर्ड गठबंधन कर सकते हैं। उपरोक्त चरणों का पालन करें, लेकिन एक मजबूत पासफ़्रेज़ दर्ज करें। अब, जब आप SSH से जुड़ते हैं या SCP का उपयोग करते हैं, तो आपको उचित निजी कुंजी फ़ाइल की आवश्यकता होगी साथ ही साथ उचित पासफ़्रेज़.
एक बार जब आप अपना पासफ़्रेज़ दर्ज कर लेते हैं, तो आपको तब तक इसके लिए दोबारा नहीं पूछा जाएगा, जब तक आप अपना सत्र बंद नहीं कर देते। इसका मतलब है कि पहली बार जब आप एसएसएच / एससीपी, आपको अपना पासवर्ड दर्ज करने की आवश्यकता होगी, लेकिन बाद के सभी कार्यों में इसकी आवश्यकता नहीं होगी। एक बार जब आप अपने कंप्यूटर (रिमोट नहीं) से लॉग आउट करते हैं या अपनी टर्मिनल विंडो बंद करते हैं, तो आपको इसे फिर से दर्ज करना होगा। इस तरह, आप वास्तव में सुरक्षा का त्याग नहीं कर रहे हैं, लेकिन आपको हर समय पासवर्ड के लिए परेशान नहीं किया जाता है.
क्या मैं सार्वजनिक / निजी कुंजी जोड़ी का पुन: उपयोग कर सकता हूं?
यह वास्तव में बुरा विचार है। यदि कोई आपका पासवर्ड ढूंढता है, और आप अपने सभी खातों के लिए एक ही पासवर्ड का उपयोग करते हैं, तो अब उनके पास उन सभी खातों तक पहुंच है। इसी तरह, आपकी निजी कुंजी फ़ाइल भी अति-गुप्त और महत्वपूर्ण है। (अधिक जानकारी के लिए, आपका ईमेल पासवर्ड समझौता करने के बाद कैसे पुनर्प्राप्त करें पर एक नज़र डालें)
आपके द्वारा लिंक किए जाने वाले प्रत्येक कंप्यूटर और खाते के लिए नए कुंजी जोड़े बनाना सबसे अच्छा है। इस तरह, यदि आपकी कोई निजी कुंजी किसी तरह पकड़ी जाती है, तो आप केवल एक दूरस्थ कंप्यूटर पर एक खाते से समझौता करेंगे.
यह ध्यान रखना भी महत्वपूर्ण है कि आपकी सभी निजी कुंजियाँ एक ही स्थान पर संग्रहीत हैं: ~ / .ssh / में आपके कंप्यूटर पर, आप ट्रू क्रिप्टक्रिप्ट का उपयोग सुरक्षित, एन्क्रिप्टेड कंटेनर बनाने के लिए कर सकते हैं, फिर अपने ~ / .sl में सिमलिंक बनाएँ। / निर्देशिका। मैं जो कर रहा हूं, उसके आधार पर, मैं अपने दिमाग को कम करने के लिए इस सुपर-पैरानॉइड सुपर-सिक्योर विधि का उपयोग करता हूं.
क्या आपने किसी स्क्रिप्ट में एससीपी का इस्तेमाल किया है? क्या आप पासवर्ड के बजाय कुंजी फ़ाइलों का उपयोग करते हैं? टिप्पणियों में अन्य पाठकों के साथ अपनी खुद की विशेषज्ञता साझा करें!