Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रणाली >> Linux

लिनक्स पर SFTP सर्वर कैसे सेट करें

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

SFTP क्या है?

SFTP (सिक्योर फ़ाइल ट्रांसफर प्रोटोकॉल) क्लाइंट से सर्वर पर फ़ाइलें ट्रांसफर करने के लिए एक नेटवर्क प्रोटोकॉल है। FTP (फ़ाइल ट्रांसफर प्रोटोकॉल) के विपरीत, SFTP डेटा को एन्क्रिप्ट करने के लिए SSH (सिक्योर शेल) प्रोटोकॉल का उपयोग करता है। इसे कंप्यूटर वैज्ञानिकों, तातु यलोनेन और सामी लेहटिनन द्वारा विकसित किया गया था, जो 1990 के दशक में SSH प्रोटोकॉल के विकास के लिए भी जिम्मेदार हैं। हालांकि, आधुनिक संस्करण IETF (इंटरनेट इंजीनियरिंग टास्क फोर्स) द्वारा विकसित किया गया है।

इसे एक रिमोट फ़ाइल सिस्टम प्रोटोकॉल के रूप में वर्णित किया जा सकता है, भले ही इसका नाम सुझाव देता है कि यह केवल फ़ाइल ट्रांसफर ऑपरेशन करता है। क्लाइंट से रिसीविंग सर्वर पर SFTP का उपयोग करके फ़ाइल भेजते समय, डेटा गंतव्य पर भेजे जाने से पहले एन्क्रिप्ट किया जाता है। यदि भेजा जा रहा डेटा "मैन-इन-द-मिडल" द्वारा इंटरसेप्ट किया जाता है, तो इसे इस थर्ड पार्टी द्वारा आसानी से डिक्रिप्ट नहीं किया जा सकता।

SSH और OpenSSH सर्वर इंस्टॉल करना

हम SSH और OpenSSH सर्वर इंस्टॉल करके SFTP सर्वर सेट करने की प्रक्रिया शुरू कर रहे हैं।

अधिकांश लिनक्स इंस्टॉलेशन में डिफ़ॉल्ट रूप से SSH पहले से इंस्टॉल होता है, लेकिन यदि आपके सिस्टम में यह नहीं है, तो आप एडवांस्ड पैकेजिंग टूल के apt कमांड का उपयोग करके इसे इंस्टॉल कर सकते हैं:

sudo apt install ssh

SSH इंस्टॉल करने के बाद, आप ssh कमांड को -V फ्लैग के साथ चलाकर इसका संस्करण देख सकते हैं:

ssh -V

आप डेबियन और उबंटू सिस्टम पर, उदाहरण के लिए, apt कमांड का उपयोग करके OpenSSH सर्वर इंस्टॉल कर सकते हैं:

sudo apt install openssh-server

आप आर्क लिनक्स पर pacman कमांड का उपयोग करके भी ऐसा ही कर सकते हैं:

sudo pacman -S openssh

SFTP के लिए उपयोगकर्ता, समूह और डायरेक्टरी बनाना

यह एक सामान्य सिफारिश है कि लिनक्स पर विभिन्न सेवाओं को अपने स्वयं के उपयोगकर्ताओं, समूहों और डायरेक्टरी का उपयोग करना चाहिए।

groupadd कमांड का उपयोग करके SFTP के उपयोगकर्ताओं के लिए एक समूह बनाकर शुरू करें:

sudo groupadd sftp_group

useradd कमांड और इसके -g फ्लैग का उपयोग करके एक उपयोगकर्ता बनाएं और इसे बनाए गए समूह में जोड़ें, जिसका उपयोग उपयोगकर्ता के हिस्से वाले समूह को निर्दिष्ट करने के लिए किया जाता है:

sudo useradd -g sftp_group sftp_user

उपयोगकर्ता बनाने के बाद, passwd कमांड का उपयोग करके इसे एक पासवर्ड असाइन करें:

sudo passwd sftp_user

नव निर्मित उपयोगकर्ता के लिए डिफ़ॉल्ट डायरेक्टरी बनाएं:

sudo mkdir -p /data/sftp_user/uploaded_files

chown कमांड का उपयोग करके डायरेक्टरी को आवश्यक अनुमतियां दें:

sudo chown -R root:sftp_group /data/sftp_user
sudo chown -R sftp_user:sftp_group /data/sftp_user/uploaded_files

SSH सर्वर कॉन्फ़िगर करना

SFTP सर्वर सेट करने के लिए अगला चरण उस SSH सर्वर को कॉन्फ़िगर करना है जिसका यह उपयोग करेगा।

/etc/ssh/ में पाई जाने वाली "sshd_config" फ़ाइल को संपादित करें ताकि उपयोगकर्ता सर्वर से कनेक्ट करते समय SSH के शेल के बजाय SFTP शेल का उपयोग करे।

आप कई लिनक्स इंस्टॉलेशन पर डिफ़ॉल्ट रूप से पाए जाने वाले आमतौर पर उपयोग किए जाने वाले नैनो एडिटर का उपयोग करके फ़ाइल को आसानी से संपादित कर सकते हैं:

sudo nano /etc/ssh/sshd_config

फ़ाइल के निचले भाग को ढूंढें और निम्न जोड़ें:

Match Group sftp_group
ChrootDirectory /data/%u
ForceCommand internal-sftp

SSH सेवा को पुनरारंभ करें:

sudo systemctl restart sshd

(वैकल्पिक) SFTP पोर्ट बदलना

यदि आप SFTP सर्वर द्वारा उपयोग किए जा रहे पोर्ट को 22 के डिफ़ॉल्ट मान से अपने चुने हुए विकल्प में बदलना चाहते हैं, तो आपको एक बार फिर "sshd_config" फ़ाइल को संपादित करना होगा।

नैनो एडिटर का उपयोग करके फ़ाइल को फिर से संपादित करें:

sudo nano /etc/ssh/sshd_config

फ़ाइल में डिफ़ॉल्ट पोर्ट मान 22 के साथ कमेंट की गई एक लाइन ढूंढें:

#Port 22

आप लाइन को कमेंट करने के लिए उपयोग किए गए हैश (#) चिह्न को हटा सकते हैं और अपने पोर्ट मान की पसंद जोड़ सकते हैं। मेरे मामले में, मैं मान को 1111 में बदल रहा हूं:

Port 1111

अब बस फ़ाइल सेव करें

और सर्वर को पुनरारंभ करें:

sudo systemctl restart sshd

सर्वर में लॉग इन करना और उपयोग करना

सर्वर इंस्टॉल और कॉन्फ़िगर होने के साथ, यह उपयोग के लिए तैयार है। आप SSH द्वारा प्रदान किए गए एन्क्रिप्टेड सत्र के साथ आसानी से फ़ाइलें अपलोड और डाउनलोड कर सकते हैं।

लॉग इन करने से पहले, प्रदान किए गए मैनुअल को देखना कोई बुरी बात नहीं होगी:

sftp -h

निम्न प्रारूप में उपयोगकर्ता नाम और सर्वर IP या होस्टनाम प्रदान करके सर्वर में लॉग इन करें:

sftp USER@HOST

इसके अलावा, -P फ्लैग का उपयोग करके अपने SFTP सर्वर द्वारा उपयोग किए जा रहे पोर्ट (डिफ़ॉल्ट 22 है) को निर्दिष्ट करें:

sftp USER@HOST -P <PORT>

जब आप लॉग इन करते हैं, तो आपका स्वागत SFTP शेल से किया जाता है।

help टाइप करके मैनुअल देखें।

फ़ाइलें डाउनलोड करना

फ़ाइल डाउनलोड करने के लिए:

get /path/to/file/on/server

उदाहरण:

get /bin/ls

यह आपकी वर्तमान डायरेक्टरी में डाउनलोड होगा - वह जिसे आप स्थानीय रूप से सर्वर में लॉग इन करने से पहले थे। किसी विशिष्ट स्थानीय डायरेक्टरी में डाउनलोड करने के लिए:

get /path/to/file/on/server /path/to/local/folder

डायरेक्टरी कॉपी करने के लिए, आपको कमांड में -r पैरामीटर जोड़ना होगा, जो रिकर्सिव के लिए खड़ा है।

get -r /bin /home/username/Desktop/bin

स्थानीय रूप से आपके द्वारा बनाई जाने वाली नई डायरेक्टरी के लिए एक नाम जोड़ना याद रखें, जैसे इस मामले में "/home/username/Desktop/bin"। यदि आप get -r /bin /home/username/Desktop का उपयोग करते हैं, तो फ़ाइलें सीधे डेस्कटॉप पर कॉपी हो जाएंगी। ध्यान दें कि यह फ़ाइलें हैं जो कॉपी की जाती हैं न कि डायरेक्टरी itself।

फ़ाइलें अपलोड करना

फ़ाइलों या डायरेक्टरी को अपलोड करना उन्हीं सिद्धांतों का पालन करता है। एकमात्र अपवाद यह है कि पथ उलटे हैं, अर्थात आप पहले स्थानीय फ़ाइल/डायरेक्टरी निर्दिष्ट करते हैं, फिर रिमोट पथ।

शुरू करने के लिए, put कमांड का उपयोग करके सर्वर पर फ़ाइलें अपलोड करें:

put /path/to/local/content /path/to/remote/location

डायरेक्टरी अपलोड करते समय (रिकर्सिव), याद रखें कि पिछले अनुभाग का वही नियम लागू होता है: यह वास्तव में डायरेक्टरी में फ़ाइलें हैं जो कॉपी की जाती हैं न कि डायरेक्टरी itself। उन फ़ाइलों को कॉपी करने के लिए आपके द्वारा बनाई जाने वाली डायरेक्टरी के लिए एक नया नाम निर्दिष्ट करें।

put -r /home/username/Desktop/bin bin

यह रिमोट साइड पर "bin" नामक एक नई डायरेक्टरी बनाता है।

ट्रांसफर रिज्यूम करें और स्पेस वाले पथ का उपयोग करें

जब आप एक बड़ी फ़ाइल ट्रांसफर करते हैं जो बाधित हो जाती है, तो आप पिछले कमांड को reput और reget से बदलकर रिज्यूम कर सकते हैं। बस सुनिश्चित करें कि आप वही पथ उपयोग करते हैं जो आपने पिछली बार उपयोग किए थे ताकि स्रोत और गंतव्य बिल्कुल मेल खाएं।

reget /path/to/file/on/server /path/to/local/file
reput /path/to/local/file /path/to/file/on/server

डायरेक्टरी ट्रांसफर रिज्यूम करने के लिए, बस -r पैरामीटर जोड़ें:

reput -r /home/username/Desktop/bin bin

यदि फ़ाइल का पथ स्पेस रखता है, तो इसे उद्धरण चिह्नों के भीतर रखें:

put "/home/username/My Documents/Files"

अन्य उपयोग

आप ls कमांड का उपयोग करके फ़ाइलों और डायरेक्टरी को सूचीबद्ध कर सकते हैं:

ls -l

फ़ाइलों की अनुमतियां chmod कमांड का उपयोग करके भी बदली जा सकती हैं:

chmod <PERMISSION> <FILE>

इसके अलावा, आप mkdir कमांड का उपयोग करके एक नई डायरेक्टरी बना सकते हैं:

mkdir <DIRECTORY_NAME>

अक्सर पूछे जाने वाले प्रश्न

1. क्या मुझे SFTP क्लाइंट इंस्टॉल करने की आवश्यकता है?

अधिकांश मामलों में नहीं, क्योंकि अधिकांश लिनक्स सिस्टम डिफ़ॉल्ट रूप से टर्मिनल-आधारित SFTP क्लाइंट के साथ आते हैं।

2. क्या मैं पब्लिक-की प्रमाणीकरण का उपयोग कर सकता हूं?

हां, आप पासवर्ड के बजाय प्रमाणीकरण विधि के रूप में पब्लिक-की प्रमाणीकरण का उपयोग कर सकते हैं। इसे सेट करना काफी सरल है, और यह आपके सर्वर के लिए अतिरिक्त सुरक्षा प्रदान करता है।

3. क्या मैं एक साथ SSH सर्वर होस्ट कर सकता हूं?

हां। हालांकि, आपको यह सुनिश्चित करना होगा कि आपका SFTP सर्वर SSH सर्वर के समान पोर्ट का उपयोग नहीं कर रहा है।

  1. लिनक्स VPS पर CS:GO सर्वर कैसे बनाएं लिनक्स VPS पर CS:GO सर्वर कैसे बनाएं

    काउंटर-स्ट्राइक: ग्लोबल ऑफेंसिव के लिए स्टीम के आधिकारिक गेम सर्वर अधिकांश उद्देश्यों के लिए काफी अच्छे हैं। हालांकि, आप उन्हें नियंत्रित नहीं करते। यदि आप अपना स्वयं का सर्वर बनाते हैं, तो आप सक्षम होंगे: अपने स्वयं के नियम सेट करें, जैसे मैच समय, फ्रीज समय, अधिकतम खिलाड़ी, फ्रेंडली फायर, और इसी त

  1. लिनक्स होम सर्वर को सुरक्षित कैसे करें लिनक्स होम सर्वर को सुरक्षित कैसे करें

    होम सर्वर सेट अप करने के बहुत सारे कारण हैं। आप इसे मीडिया सर्वर, फाइल सर्वर, या यहां तक कि लोकल बैकअप सर्वर के रूप में उपयोग कर सकते हैं। मूल रूप से, आपकी कोई भी फाइल जिसे ऑनलाइन होने की आवश्यकता नहीं है, होम सर्वर के लिए अच्छे उम्मीदवार हैं। लिनक्स-पावर्ड होम सर्वर सेट अप करना अपेक्षाकृत आसान है,

  1. Discord सर्वर कैसे सेट करें: चरण-दर-चरण गाइड Discord सर्वर कैसे सेट करें: चरण-दर-चरण गाइड

    एक Discord सर्वर सेट करना और फिर अपने दोस्तों और परिवार को शामिल होने के लिए आमंत्रित करना आने वाले छुट्टियों के मौसम के दौरान जुड़े रहने का सही तरीका हो सकता है। इस ट्यूटोरियल में, हम एक अकाउंट बनाते हैं, एक सर्वर और क्लाइंट तैनात करते हैं, विभिन्न चैनल सेट करते हैं, और फिर लोगों को चैट करने और फ़ा