12 scp command examples securely transfer files linux
यह ट्यूटोरियल सुरक्षित प्रतिलिपि प्रोटोकॉल या SCP कमांड का उपयोग करता है जो लिनक्स और यूनिक्स में फ़ाइलों को सिंटैक्स और परीक्षा के साथ सुरक्षित रूप से कॉपी करने के लिए उपयोग किया जाता है:
इस लेख में, हम एससीपी (सिक्योर कॉपी कॉपी) कमांड पर चर्चा करेंगे, जिसका इस्तेमाल फाइल ट्रांसफर के लिए किया जाता है। हम देखेंगे कि यह क्या है और यह कुछ उदाहरणों की मदद से कैसे काम करता है। तो, चलिए पहले समझने की कोशिश करते हैं कि एससीपी कमांड क्या है।
आप क्या सीखेंगे:
एससीपी कमांड क्या है?
एससीपी (सिक्योर कॉपी प्रोटोकॉल) एक नेटवर्क प्रोटोकॉल है जो कंप्यूटर नेटवर्क पर मेजबानों के बीच फ़ाइलों को सुरक्षित रूप से स्थानांतरित करने के लिए उपयोग किया जाता है। सिस्टम में लिनक्स और यूनिक्स में इस कमांड-लाइन उपयोगिता का उपयोग करके, आप एक स्थानीयहोस्ट से दूरस्थ होस्ट या किसी दूरस्थ होस्ट से स्थानीय सिस्टम या दो दूरस्थ होस्ट के बीच फाइल ट्रांसफर कर सकते हैं।
(छवि स्रोत )
एससीपी फाइलों को स्थानांतरित करने के लिए एसएसएच (सिक्योर शेल) तंत्र का उपयोग करके डेटा की प्रामाणिकता, एन्क्रिप्शन और गोपनीयता सुनिश्चित करता है। तो, पारगमन में डेटा स्नूपिंग हमलों से सुरक्षित है। ग्राहक इस प्रोटोकॉल का उपयोग करके सर्वर से फाइल और निर्देशिकाओं को अपलोड और डाउनलोड कर सकते हैं। यह प्रमाणीकरण के लिए पासवर्ड या कुंजी की आवश्यकता है। SCP के लिए डिफ़ॉल्ट पोर्ट TCP पोर्ट 22 है।
एससीपी प्रोटोकॉल का लाभ यह है कि आपको एफ़टीपी सत्र शुरू करने या फ़ाइल स्थानांतरण के लिए स्पष्ट रूप से दूरस्थ होस्ट में लॉग इन करने की आवश्यकता नहीं है।
एससीपी प्रोटोकॉल के लिए सिंटैक्स
# 1) फ़ाइल को स्थानीय से दूरस्थ होस्ट में कॉपी करने के लिए
scp (options) SourceFileName UserName@TargetHost:TargetPath
यह एससीपी कमांड का एक बहुत ही मूल सिंटैक्स है जो वर्तमान होस्ट से स्रोत फ़ाइल को लक्ष्य खाते में एक उपयोगकर्ता खाते का उपयोग करके लक्षित पथ पर कॉपी करेगा। आमतौर पर, यह प्रतिलिपि cp कमांड के समान है।
# 2) रिमोट होस्ट से लोकल में कॉपी करने के लिए
फ़ाइल की प्रतिलिपि बनाने के लिए:
scp (options) UserName@SourceHost:SourceFilePath TargetFileName
या, बस फ़ाइल डाउनलोड करें:
scp (options) UserName@SourceHost:SourceFilePath
फ़ोल्डर की नकल के लिए (पुनरावर्ती):
scp -r UserName@SourceHost:SourceDirectoryPath TargetFolderName
यदि दूरस्थ होस्ट डिफ़ॉल्ट पोर्ट 22 के अलावा किसी पोर्ट का उपयोग करता है, तो पोर्ट नंबर को -P विकल्प का उपयोग करके कमांड में स्पष्ट रूप से उल्लेख किया जाना चाहिए।
# 3) एक रिमोट कंप्यूटर से दूसरे रिमोट कंप्यूटर में कॉपी करना
scp (options) UserName@SourceHost:SourcePath UserName@TargetHost:TargetPath
जब आप फ़ाइलों को एक दूरस्थ कंप्यूटर से दूसरे में कॉपी करते हैं, तो ट्रैफ़िक आपके कंप्यूटर से नहीं गुजरता है। यह ऑपरेशन सीधे दो रिमोट सर्वर के बीच होता है।
# 4) कई फाइलों को कॉपी करना
स्थानीय होस्ट से दूरस्थ होस्ट के लिए कई फ़ाइलों की प्रतिलिपि बनाने के लिए:
scp file1 file2 UserName@TargetHost:TargetDirectoryPath
दूरस्थ होस्ट से स्थानीय होस्ट की वर्तमान निर्देशिका के लिए कई फ़ाइलों की प्रतिलिपि बनाने के लिए:
scp UserName@SourceHost:SourceDirectoryPath{file1, file2}
एससीपी कमांड के साथ उपयोग किए गए विकल्प
एससीपी कमांड के साथ सबसे अधिक उपयोग किए जाने वाले विकल्प नीचे सूचीबद्ध हैं:
- -सी : सी, यहाँ सक्षम संपीड़न के लिए खड़ा है। इस विकल्प का उपयोग करके, संपीड़न को सक्षम किया जाएगा और कॉपी करते समय स्थानांतरण की गति बढ़ाई जाएगी। यह स्वचालित रूप से स्रोत पर संपीड़न और लक्ष्य पर विघटन को सक्षम करेगा।
- -सी: c का मतलब सिफर है। डिफ़ॉल्ट रूप से, SCP फ़ाइलों के एन्क्रिप्शन के लिए 'AES-128' का उपयोग करता है। यदि आप सिफर को बदलना चाहते हैं, तो आपको -c विकल्प का उपयोग करना होगा, जिसके बाद सिफर नाम आएगा।
- -मैं : मैं फ़ाइल या निजी कुंजी की पहचान करता हूं। आमतौर पर, कुंजी-आधारित प्रमाणीकरण को लिनक्स वातावरण में चुना जाता है। इसलिए, हम -i विकल्प का उपयोग करके विशेष रूप से निजी कुंजी फ़ाइल या पहचान फ़ाइल का उल्लेख कर सकते हैं।
- -l: एल सीमा बैंडविड्थ के लिए खड़ा है। इस विकल्प के माध्यम से, आप उपयोग किए जाने वाले अधिकतम बैंडविड्थ को सेट कर सकते हैं। यह Kbits / s में है।
- -बी: इस विकल्प का उपयोग कॉपी करते समय बैच मोड का उपयोग करने के लिए किया जाता है।
- -F: यह विकल्प उन स्थितियों में कॉपी करते समय एक अलग ssh_config फ़ाइल का उपयोग करने के लिए उपयोग किया जाता है जहां आपको लिनक्स सिस्टम से कनेक्ट करने के लिए विभिन्न नेटवर्क का उपयोग करने की आवश्यकता होती है। ऐसे परिदृश्यों में, आपको प्रति-उपयोगकर्ता SSH कॉन्फ़िगरेशन फ़ाइल को स्थानापन्न करने की आवश्यकता होती है।
- -प: यदि गंतव्य होस्ट का ssh पोर्ट नंबर डिफ़ॉल्ट पोर्ट नंबर 22 से अलग है, तो आपको विशेष रूप से -P विकल्प का उपयोग करके पोर्ट नंबर का उल्लेख करना होगा।
- -p: इस विकल्प का उपयोग कॉपी करते समय फ़ाइल अनुमतियों, संशोधनों और एक्सेस समय को संरक्षित करने के लिए किया जाता है।
- -q: यह विकल्प शांत मोड में एससीपी कमांड को निष्पादित करेगा। यह प्रगति मीटर को बंद कर देगा और लिनक्स टर्मिनल स्क्रीन पर ट्रांसफर प्रगति, चेतावनी या ssh के नैदानिक संदेशों को नहीं दिखाएगा।
- -आर: -r विकल्प का उपयोग फ़ाइलों और निर्देशिकाओं को पुनरावर्ती रूप से कॉपी करने के लिए किया जाता है। उदाहरण के लिए, यदि आप एक लक्ष्य मशीन पर संपूर्ण फ़ोल्डर (फ़ोल्डर के अंदर सामग्री के साथ) को कॉपी करना चाहते हैं, तो आपको -r विकल्प का उपयोग करने की आवश्यकता है।
- -S: कनेक्ट करने के लिए प्रोग्राम को निर्दिष्ट करने के लिए इस विकल्प का उपयोग किया जाता है।
- -v: v क्रिया के लिए खड़ा है। यह विकल्प टर्मिनल स्क्रीन पर एससीपी कमांड निष्पादन की चरणबद्ध प्रगति को दिखाएगा। यह वास्तव में डिबगिंग में सहायक है।
एससीपी कमांड उदाहरण
आइए समझते हैं कि उदाहरणों की मदद से एससीपी कमांड का उपयोग कैसे करें:
उदाहरण 1: स्थानीय से दूरस्थ होस्ट में कॉपी करने के लिए
scp -v lockfile.txt kaushapx@10.172.80.167: /home/cpf657/kaushapx/test1
उपरोक्त उदाहरण में,
कैसे सरणी जावा की सामग्री मुद्रित करने के लिए
- -v विकल्प का उपयोग लिनक्स टर्मिनल पर इस कमांड के आउटपुट के विवरण को देखने के लिए एक क्रिया विकल्प के रूप में किया जाता है। वर्बोज़ आउटपुट का उपयोग करके, आप यह जान सकते हैं कि कमांड निष्पादित होने पर पृष्ठभूमि में वास्तव में क्या हो रहा है। यह डीबग करने में मदद करता है।
- Lockfile.txt स्रोत फ़ाइल नाम है जिसे हम एक दूरस्थ होस्ट में स्थानांतरित करना चाहते हैं।
- Kaushapx एक उपयोगकर्ता नाम का एक उदाहरण है। इस उपयोगकर्ता नाम खाते का उपयोग करते हुए, हम फ़ाइल को दूरस्थ होस्ट में सुरक्षित रूप से कॉपी कर लेंगे।
- 10.172.80.167 लक्ष्य दूरस्थ होस्ट के आईपी का उदाहरण है, जिस पर हम फ़ाइल को स्थानांतरित करना चाहते हैं।
- / home / cpf657 / kaushapx / test1 एक निरपेक्ष पथ का एक उदाहरण है जहाँ हम इस स्थानांतरित फ़ाइल को रखना चाहते हैं।
नीचे दिए गए स्क्रीनशॉट उपरोक्त SCP कमांड के निष्पादन को प्रदर्शित करते हैं।
उदाहरण 2: दूरस्थ मेजबान से स्थानीय प्रणाली में कॉपी करने के लिए:
scp kaushapx@10.172.80.167:/home/cpf657/kaushapx/test/parent/directory1/DemoFile.txt /home/tpf655/kaushapx
उदाहरण 3: दूरस्थ होस्ट में एकाधिक फ़ाइलों की प्रतिलिपि बनाने के लिए:
scp DemoFile.txt log.xml kaushapx@10.172.80.167:/home/cpf657/kaushapx/test
उदाहरण 4: दो दूरस्थ प्रणालियों में फ़ाइलों की प्रतिलिपि बनाने के लिए:
scp kaushapx@10.172.80.167:/home/cpf657/kaushapx/console.txt kaushapx@10.182.46.76:/home/tpf655/kaushapx/test
उदाहरण 5: फ़ाइलों और निर्देशिकाओं को पुनरावर्ती रूप से कॉपी करने के लिए (-r विकल्प का उपयोग करके):
मान लीजिए, मेरे पास स्थानीयहोस्ट में ‘परीक्षण’ नामक एक फ़ोल्डर है और इस फ़ोल्डर में चार फाइलें हैं। मैं दूरस्थ होस्ट पर मौजूद called test1 ’नामक एक अन्य फ़ोल्डर के अंदर पूरे फ़ोल्डर की प्रतिलिपि बनाना चाहता हूं।
मैं निम्नलिखित कमांड का उपयोग करूंगा:
scp -r test kaushapx@10.172.80.167:/home/cpf657/kaushapx/test1
उदाहरण 6: संपीड़न सक्षम करके प्रतिलिपि की गति बढ़ाने के लिए (-C विकल्प का उपयोग करके):
आइए हम उसी फ़ोल्डर को स्थानांतरित करें जो हमने उदाहरण 5 में किया था, लेकिन इस बार संपीड़न को सक्षम करके:
scp -r -C test kaushapx@10.172.80.167:/home/cpf657/kaushapx/test1
उदाहरण 7: कॉपी करते समय बैंडविड्थ को सीमित करने के लिए (-l विकल्प का उपयोग करके):
हमें उसी विकल्प के साथ जारी रखना चाहिए। इस बार हम -l विकल्प का उपयोग करेंगे और बैंडविड्थ निर्दिष्ट करेंगे, 500 का कहना है। याद रखें, हमने जो बैंडविड्थ यहां रखी है, वह Kbit / s में है।
उदाहरण 8: प्रतिलिपि करते समय (-प विकल्प का उपयोग करते हुए) अलग ssh पोर्ट निर्दिष्ट करने के लिए:
यदि दूरस्थ सर्वर जिस पर आप फ़ाइल की प्रतिलिपि बना रहे हैं, वह डिफ़ॉल्ट पोर्ट 22 के अलावा कुछ पोर्ट का उपयोग कर रहा है, तो आपको -P विकल्प का उपयोग करके एससीपी कमांड में पोर्ट नंबर को स्पष्ट रूप से बताना होगा। उदाहरण के लिए, यदि दूरस्थ सर्वर का ssh पोर्ट 2022 है, तो आप SCP कमांड में -P 2022 का उल्लेख करेंगे।
scp -P 2022 console.txt kaushapx@10.182.46.76:/home/tpf655/kaushapx/test
उदाहरण 9: कॉपी करते समय फ़ाइल अनुमतियों, संशोधनों, और एक्सेस समय के संरक्षण के लिए (-p विकल्प का उपयोग करके):
scp -p console.txt kaushapx@10.172.80.167:/home/cpf657/kaushapx/test1
उदाहरण 10: शांत मोड में फ़ाइलों की प्रतिलिपि बनाने के लिए (-q विकल्प का उपयोग करके):
scp -q console.txt kaushapx@10.172.80.167:/home/cpf657/kaushapx/test1
उदाहरण 11: कॉपी करते समय एससीपी में फाइलों की पहचान करने के लिए (-i विकल्प का उपयोग करके):
उपरोक्त उदाहरण में, my_pStreet_key.pem पहचान फ़ाइल या निजी कुंजी फ़ाइल है।
उदाहरण 12: एससीपी के माध्यम से कॉपी करते समय एक अलग साइफर का उपयोग करने के लिए (-c विकल्प का उपयोग करके):
scp -c 3des-cbc -r test1 kaushapx@10.182.46.76:/home/tpf655/kaushapx/test
SCP कमांड के बारे में अक्सर पूछे जाने वाले प्रश्न
इस अनुभाग में, हम एससीपी कमांड पर कुछ अक्सर पूछे जाने वाले प्रश्नों को कवर करेंगे।
Q # 1) एससीपी कमांड क्या है?
उत्तर: एससीपी का मतलब सिक्योर कॉपी प्रोटोकॉल है। एससीपी कमांड का उपयोग करके, आप नेटवर्क पर मेजबानों के बीच फाइलों की नकल सुरक्षित रूप से कर सकते हैं। यह डेटा ट्रांसफर के लिए SSH के तंत्र का उपयोग करता है। यह कुंजी या पासवर्ड-आधारित प्रमाणीकरण का उपयोग करता है।
Q # 2) एससीपी लिनक्स में क्या करता है?
उत्तर: लिनक्स में, एससीपी कमांड एक सुरक्षित तरीके से सर्वर के बीच फाइलों को स्थानांतरित करता है। यह दूरस्थ सर्वर और स्थानीय होस्ट के बीच या दो दूरस्थ सर्वरों के बीच एक फाइल कॉपी हो सकती है। एससीपी लिनक्स में एक पूर्व-स्थापित कमांड है और अपनी सादगी और सुरक्षा के लिए जाना जाता है।
Q # 3) हम लिनक्स में एससीपी फाइलें कैसे करते हैं?
कैसे .mkv फ़ाइलों को खेलने के लिए
उत्तर: आप निम्न कमांड सिंटैक्स द्वारा SCP फाइल कर सकते हैं:
scp (options) (username@)(source_host:)file1 (username@)(destination_host:)file2.
एससीपी कमांड के साथ कई विकल्पों का उपयोग किया जा सकता है। उदाहरण के लिए, संपीड़न के लिए -C, सिफर के लिए -सी, पोर्ट के लिए, -आई निजी कुंजी के लिए, -l सीमा के लिए, -r पुनरावर्ती प्रतिलिपि के लिए, आदि।
Q # 4) हम एक फाइल को कैसे SCP करते हैं?
उत्तर: आप QCP 3 में बताए अनुसार SCP कमांड का उपयोग करके किसी फ़ाइल को SCP कर सकते हैं।
Q # 5) क्या एससीपी कॉपी या स्थानांतरित होता है?
उत्तर: एससीपी कमांड फाइल को स्रोत से गंतव्य तक कॉपी करता है। इसलिए, SCP के बाद, फ़ाइल दोनों मेजबानों पर मौजूद होगी।
Q # 6) क्या आप एक निर्देशिका के लिए एससीपी का उपयोग कर सकते हैं?
उत्तर: हां, हम एक निर्देशिका के लिए एससीपी का उपयोग कर सकते हैं। आपको इसकी सामग्री के साथ संपूर्ण निर्देशिका की प्रतिलिपि के लिए -r विकल्प का उपयोग करने की आवश्यकता है।
नीचे एक स्थानीय होस्ट से दूरस्थ होस्ट की निर्देशिका की प्रतिलिपि बनाने के लिए SCP कमांड सिंटैक्स है:
scp -r localhost_path_to_directory username@target_server_ip:/path_to_target_directory/
Q # 7) हम एक निर्देशिका में सभी फाइलों के लिए एससीपी का उपयोग कैसे करते हैं?
उत्तर: किसी निर्देशिका में सभी फ़ाइलों पर SCP का उपयोग करने के लिए, आपको निर्देशिका पथ के साथ * जोड़ना होगा:
scp -r localhost_path_to_directory/* username@target_server_ip:/path_to_target_directory/
इस तरह, स्थानीय निर्देशिका के अंदर सभी फ़ाइलों को दूरस्थ निर्देशिका में कॉपी किया जाएगा।
Q # 8) क्या हम Windows में SCP का उपयोग कर सकते हैं?
उत्तर: हां, आप विंडोज में एससीपी का उपयोग कर सकते हैं। हालांकि, यह लिनक्स और मैक के विपरीत विंडोज में पूर्व-डाउनलोड नहीं है, इसलिए विंडोज के लिए, आपको अलग से एससीपी सॉफ्टवेयर स्थापित करने की आवश्यकता है।
आप पोट्टी डाउनलोड कर सकते हैं जिसमें विंडोज के लिए एससीपी (पॉटी एससीपी (पीएससीपी) नामक सॉफ्टवेयर शामिल है, या आप विनएससीपी (विंडोज सिक्योर कॉपी) डाउनलोड कर सकते हैं। पीएससीपी क्लाइंट विंडोज कमांड प्रॉम्प्ट से सीधे चलता है। विंडोज में सीसीपी का उपयोग करने के लिए अन्य सॉफ्टवेयर भी हैं। ।
Q # 9) हम कई फाइलों के लिए एससीपी का उपयोग कैसे करते हैं?
उत्तर: SCP का उपयोग करते हुए स्थानीय होस्ट से दूरस्थ होस्ट तक कई फ़ाइलों की प्रतिलिपि बनाने के लिए:
scp file1 file2 UserName@TargetHost:TargetDirectoryPath
SCP का उपयोग करके स्थानीय होस्ट की वर्तमान निर्देशिका के लिए एक दूरस्थ होस्ट से कई फ़ाइलों की प्रतिलिपि बनाने के लिए:
scp UserName@SourceHost:SourceDirectoryPath{file1, file2}
Q # 10) SCP और SFTP में क्या अंतर है?
उत्तर: एससीपी सिक्योर कॉपी प्रोटोकॉल है। SFTP सिक्योर फाइल ट्रांसफर प्रोटोकॉल है। दोनों TCP पोर्ट 22 का उपयोग करते हैं और SSH तंत्र पर चलते हैं। लेकिन वे विनिर्देशों और कार्यों में भिन्न हैं।
एससीपी केवल डेटा को स्थानांतरित करता है, जबकि एसएफटीपी फ़ाइल स्थानांतरण के अलावा फ़ाइल एक्सेस और फ़ाइल प्रबंधन फ़ंक्शन भी करता है। SFTP के साथ, आप दूरस्थ निर्देशिका को सूचीबद्ध करने या फ़ाइलों को हटाने जैसे ऑपरेशन कर सकते हैं। लेकिन एससीपी केवल सर्वरों के बीच फ़ाइलों और निर्देशिकाओं की प्रतिलिपि बनाने की अनुमति देता है।
SCP में फ़ाइल स्थानांतरण की गति SFTP से तेज़ है क्योंकि यह फ़ाइलों को स्थानांतरित करने के लिए अधिक कुशल एल्गोरिदम का उपयोग करता है।
मैं सी ++ के साथ क्या कर सकता हूं
SFTP में, आप कमांड लाइन क्लाइंट से बाधित फ़ाइल स्थानांतरण को फिर से शुरू कर सकते हैं। लेकिन एससीपी में यह फ़ंक्शन नहीं है।
एसएफटीपी एक जीयूआई घटक प्रदान करता है लेकिन एससीपी में ऐसा नहीं है।
Q # 11) किसी फाइल को सुरक्षित रूप से कॉपी करने के लिए विंडोज में SCP कमांड क्या है?
उत्तर: Windows कमांड प्रॉम्प्ट खोलें और Windows स्थानीय मशीन से सर्वर पर फ़ाइल को सुरक्षित रूप से कॉपी करने के लिए कमांड दें (यह लिनक्स सर्वर हो सकता है:
pscp filepath userid @ target_server_ip: target_path
उदाहरण: pscp c: desktop sample.txt userxyz@192.162.x.x: /tmp/foo/sample.txt
इस कमांड को निष्पादित करने के लिए आपके पास PSCP स्थापित होना चाहिए।
Q # 12) क्या SCP सुरक्षित है?
उत्तर: हां, एससीपी सुरक्षित है। यह डेटा ट्रांसफर के लिए SSH (सिक्योर शेल प्रोटोकॉल) तंत्र का उपयोग करता है, इस प्रकार यह SSH द्वारा दी गई सुरक्षा से लाभान्वित होता है। पारगमन में डेटा गोपनीय रखा जाता है और इसकी प्रामाणिकता भी सुनिश्चित की जाती है।
निष्कर्ष
इस ट्यूटोरियल में, हमने देखा है कि किसी FTP सत्र को शुरू किए बिना या दूरस्थ मशीनों में स्पष्ट रूप से लॉग इन किए बिना दो दूरस्थ मेजबानों के बीच या एक स्थानीय होस्ट और एक दूरस्थ होस्ट के बीच फ़ाइलों को सुरक्षित रूप से कॉपी करने के लिए एससीपी कमांड का उपयोग कैसे करें।
एससीपी डेटा की प्रतिलिपि बनाने के लिए एसएसएच तंत्र को नियुक्त करता है और इस प्रकार पारगमन में डेटा एन्क्रिप्ट और सुरक्षित होता है। यह प्रमाणीकरण के लिए एक पासवर्ड या कुंजी की आवश्यकता है। आरसीपी (रिमोट कॉपी प्रोटोकॉल) या एफ़टीपी (फाइल ट्रांसफर प्रोटोकॉल) के विपरीत, एससीपी नेटवर्क पर किसी भी स्नूपिंग की सुरक्षा के लिए सिस्टम के बीच एक्सचेंज किए गए फ़ाइल और पासवर्ड दोनों को एन्क्रिप्ट करता है।
अनुशंसित पाठ
- उदाहरणों के साथ यूनिक्स में कमान काटें
- यूनिक्स में कमांड का पता लगाएं: यूनिक्स के साथ फाइल का पता लगाएं फाइल (उदाहरण)
- यूनिक्स कैट कमांड सिंटैक्स, उदाहरण के साथ विकल्प
- उदाहरणों के साथ यूनिक्स में Ls कमांड
- उदाहरण के साथ यूनिक्स शैल स्क्रिप्ट में कमांड लाइन तर्क
- सरल उदाहरणों के साथ यूनिक्स में ग्रीप कमांड
- यूनिक्स में फाइल मैनिपुलेशन: यूनिक्स फाइल सिस्टम का अवलोकन
- सिंटेक्स, विकल्प और उदाहरण के साथ यूनिक्स सॉर्ट कमांड