सुरक्षित कॉपी प्रोटोकॉल

सिक्योर कॉपी प्रोटोकॉल (SCP) एक स्थानीय होस्ट और एक रिमोट सर्वर (कंप्यूटिंग) या दो रिमोट होस्ट के बीच कम्प्यूटर फाइल को सुरक्षित रूप से स्थानांतरित करने का एक साधन है। यह सुरक्षित खोल  (SSH) प्रोटोकॉल पर आधारित है। एससीपी आमतौर पर सिक्योर कॉपी प्रोटोकॉल और प्रोग्राम दोनों को संदर्भित करता है। अप्रैल 2019 में ओपनएसएसएच डेवलपर्स के अनुसार, एससीपी पुराना, अनम्य और आसानी से तय नहीं है; वे फाइल ट्रांसफर के लिए अधिक आधुनिक प्रोटोकॉल जैसे सुरक्षित फ़ाइल स्थानांतरण कार्यक्रम  और rsync के उपयोग की सलाह देते हैं। OpenSSH संस्करण 9.0 के अनुसार, scp क्लाइंट इसलिए लीगेसी SCP/RCP प्रोटोकॉल के बजाय डिफ़ॉल्ट रूप से फ़ाइल स्थानांतरण के लिए SFTP का उपयोग करता है।

सिक्योर कॉपी प्रोटोकॉल
एससीपी एक नेटवर्क प्रोटोकॉल है, जो बीएसडी आरसीपी (यूनिक्स) प्रोटोकॉल पर आधारित है, जो एक नेटवर्क पर मेजबानों के बीच दस्तावेज हस्तांतरण  का समर्थन करता है। एससीपी डेटा ट्रांसफर के लिए  सुरक्षित खोल  (एसएसएच) का उपयोग करता है और प्रमाणीकरण के लिए समान तंत्र का उपयोग करता है, जिससे सूचना सुरक्षा # पारगमन में डेटा की प्रामाणिकता और गोपनीयता सुनिश्चित होती है। एक ग्राहक वैकल्पिक रूप से उनकी मूल विशेषताओं (अनुमतियों, टाइमस्टैम्प) सहित सर्वर पर फ़ाइलें भेज (अपलोड) कर सकता है। ग्राहक सर्वर (डाउनलोड) से फ़ाइलों या निर्देशिकाओं का अनुरोध भी कर सकते हैं। एससीपी डिफ़ॉल्ट रूप से टीसीपी पोर्ट 22 पर चलता है। आरसीपी की तरह, टिप्पणियों के लिए कोई अनुरोध नहीं है जो प्रोटोकॉल की बारीकियों को परिभाषित करता है।

समारोह
आम तौर पर, क्लाइंट दूरस्थ होस्ट के लिए SSH कनेक्शन आरंभ करता है, और दूरस्थ सर्वर पर SCP प्रक्रिया प्रारंभ करने का अनुरोध करता है। दूरस्थ SCP प्रक्रिया दो में से एक मोड में काम कर सकती है: अधिकांश एससीपी ग्राहकों के लिए, स्रोत मोड आमतौर पर -f फ्लैग (से) के साथ ट्रिगर होता है, जबकि सिंक मोड -t (to) के साथ ट्रिगर होता है। ये झंडे आंतरिक रूप से उपयोग किए जाते हैं और एससीपी स्रोत कोड के बाहर प्रलेखित नहीं होते हैं।
 * स्रोत मोड, जो फाइलों को पढ़ता है (आमतौर पर डिस्क से) और उन्हें क्लाइंट को वापस भेजता है, या
 * सिंक मोड, जो क्लाइंट द्वारा भेजी गई फाइलों को स्वीकार करता है और उन्हें (आमतौर पर डिस्क पर) रिमोट होस्ट पर लिखता है।

रिमोट से रिमोट मोड
अतीत में, दूरस्थ-से-दूरस्थ सुरक्षित प्रति में, SCP क्लाइंट स्रोत होस्ट के लिए एक SSH कनेक्शन खोलता है और अनुरोध करता है कि यह बदले में, गंतव्य के लिए एक SCP कनेक्शन खोलें। (रिमोट-टू-रिमोट मोड दो एससीपी कनेक्शन खोलने और मध्यस्थ के रूप में मूल क्लाइंट का उपयोग करने का समर्थन नहीं करता है)। यह ध्यान रखना महत्वपूर्ण है कि एससीपी का उपयोग पासवर्ड या कीबोर्ड-इंटरैक्टिव प्रमाणीकरण मोड में काम करते समय स्रोत से गंतव्य तक दूरस्थ रूप से कॉपी करने के लिए नहीं किया जा सकता है, क्योंकि इससे स्रोत के लिए गंतव्य सर्वर के प्रमाणीकरण प्रमाण-पत्र प्रकट होंगे। हालांकि, कुंजी-आधारित या जीएसएसएपीआई विधियों के साथ यह संभव है, जिसके लिए उपयोगकर्ता इनपुट की आवश्यकता नहीं होती है।

हाल ही में, रिमोट-टू-रिमोट मोड क्लाइंट के माध्यम से रूटिंग ट्रैफ़िक का समर्थन करता है जिसने स्थानांतरण की शुरुआत की, भले ही वह स्थानांतरण के लिए एक तृतीय पक्ष हो। इस तरह, प्राधिकरण प्रमाणिकता केवल मूल ग्राहक, तृतीय पक्ष पर होनी चाहिए।

बातूनी शेल प्रोफाइल का उपयोग करने में समस्या
SCP, SSH लॉगिन शेल के साथ संचार करने वाले पाठ की अपेक्षा नहीं करता है। एसएसएच प्रोफाइल के कारण प्रेषित पाठ (उदाहरण के लिए echo वेलकम .bashrc फ़ाइल में) एक त्रुटि संदेश के रूप में समझा जाता है, और एक शून्य रेखा ( echo ) त्रुटि संदेश के पूरा होने की प्रतीक्षा में SCP क्लाइंट को गतिरोध का कारण बनता है।

सिक्योर कॉपी (रिमोट फाइल कॉपी प्रोग्राम)
एससीपी कार्यक्रम एक सॉफ्टवेयर टूल है जो SCP प्रोटोकॉल को सर्विस डेमन या क्लाइंट के रूप में लागू करता है। यह सुरक्षित नकल करने का कार्यक्रम है।

शायद सबसे व्यापक रूप से उपयोग किया जाने वाला SCP प्रोग्राम OpenSSH कमांड लाइन scp प्रोग्राम है, जो कि अधिकांश SSH कार्यान्वयनों में प्रदान किया जाता है। scp प्रोग्राम rcp कमांड का सुरक्षित एनालॉग है। scp प्रोग्राम उन सभी SSH सर्वर का हिस्सा होना चाहिए जो SCP सेवा प्रदान करना चाहते हैं, क्योंकि scp SCP सर्वर के रूप में भी कार्य करता है।

कुछ SSH कार्यान्वयन scp2 प्रोग्राम प्रदान करते हैं, जो SCP के बजाय SSH फ़ाइल स्थानांतरण प्रोटोकॉल प्रोटोकॉल का उपयोग करता है, लेकिन scp के समान कमांड लाइन इंटरफ़ेस प्रदान करता है। scp आमतौर पर scp2 का सांकेतिक लिंक होता है।

सिंटेक्स
आमतौर पर, scp प्रोग्राम का सिंटैक्स Cp (Unix)| cp (प्रतिलिपि) के सिंटैक्स की तरह है:

स्थानीय फ़ाइल को दूरस्थ होस्ट में कॉपी करना: scp LocalSourceFile user @ remotehost : directory / TargetFile

रिमोट होस्ट से फ़ाइल कॉपी करना और रिमोट होस्ट से फ़ोल्डर कॉपी करना ( -r स्विच के साथ): scp उपयोगकर्ता @ remotehost : directory / SourceFile LocalTargetFile scp -r उपयोगकर्ता @ मेजबान : निर्देशिका / SourceFolder LocalTargetFolder < / केबीडी>

ध्यान दें कि यदि रिमोट होस्ट 22 के डिफ़ॉल्ट के अलावा पोर्ट का उपयोग करता है, तो इसे कमांड में निर्दिष्ट किया जा सकता है। उदाहरण के लिए, होस्ट से फ़ाइल कॉपी करना: scp -P 2222 उपयोगकर्ता @ मेजबान : निर्देशिका / SourceFile TargetFile 

अन्य ग्राहक
जैसा कि सिक्योर कॉपी प्रोटोकॉल केवल फाइल ट्रांसफर को लागू करता है, जीयूआई एससीपी क्लाइंट दुर्लभ हैं, क्योंकि इसे लागू करने के लिए अतिरिक्त कार्यक्षमता (निर्देशिका (फाइल सिस्टम) लिस्टिंग कम से कम) की आवश्यकता होती है। उदाहरण के लिए, WinSCP, SFTP प्रोटोकॉल को डिफॉल्ट करता है। एससीपी मोड में काम करते समय भी, विनएससीपी जैसे क्लाइंट आमतौर पर शुद्ध एससीपी क्लाइंट नहीं होते हैं, क्योंकि उन्हें अतिरिक्त कार्यक्षमता (जैसे एलएस| ls कमांड) को लागू करने के लिए अन्य साधनों का उपयोग करना चाहिए। यह बदले में प्लेटफ़ॉर्म-निर्भरता की समस्याएँ लाता है।

SSH पर फाइलों के प्रबंधन के लिए अधिक व्यापक उपकरण एसएसएच फाइल ट्रांसफर प्रोटोकॉल क्लाइंट हैं।

सुरक्षा
2019 में भेद्यता Opensh SCP टूल और प्रोटोकॉल से संबंधित घोषणा की गई थी, जो उपयोगकर्ताओं को SCP क्लाइंट लक्ष्य निर्देशिका में मनमानी फ़ाइलों को अधिलेखित करने की अनुमति देता है।

यह भी देखें
• SSH File Transfer Protocol (SFTP)

• Remote copy (rcp)

• Comparison of file transfer protocols

• Files transferred over shell protocol (FISH)

• FTP over SSH

• FTPS

• rsync

• Secure shell

• WinSCP