आप SFTP का उपयोग करके क्लाइंट और Windows सर्वर के बीच सुरक्षित फ़ाइल स्थानांतरण को आसानी से व्यवस्थित करने के लिए Windows के लिए आधिकारिक OpenSSH पैकेज का उपयोग कर सकते हैं (सुरक्षित एफ़टीपी ) मसविदा बनाना। इस लेख में, हम दिखाएंगे कि Windows 10 या Windows Server 2016/2012 R2 पर SFTP सर्वर चलाने के लिए Win32-OpenSSH का उपयोग कैसे करें।
सामग्री:
- एसएफ़टीपी क्या है?
- Windows में SFTP कार्यान्वयन
- Windows 10 1803+/Windows Server 2019 पर Win32 OpenSSH इंस्टॉल करना
- Windows Server 2016/2012 R2 पर Win32 OpenSSH स्थापित करें
- WinSCP का उपयोग करके SFTP कनेक्शन का परीक्षण
- Win32 OpenSSH को कैसे अनइंस्टॉल करें?
एसएफ़टीपी क्या है?
एसएफ़टीपी (सुरक्षित फ़ाइल स्थानांतरण प्रोटोकॉल , सुरक्षित एफ़टीपी या एसएसएच एफ़टीपी ) एसएसएच प्रोटोकॉल का विस्तार है, जो यूनिक्स/लिनक्स सिस्टम की दुनिया में एक मानक है। उपयोगकर्ता के दृष्टिकोण से, यह एफ़टीपी के समान है, लेकिन वास्तव में, यह एक पूरी तरह से अलग प्रोटोकॉल है, जिसमें एफ़टीपी के साथ कुछ भी सामान्य नहीं है। डेटा को क्लाइंट और सर्वर के बीच SSH टनल (TCP पोर्ट 22) के माध्यम से स्थानांतरित किया जाता है।
एसएफटीपी के मुख्य लाभ:
- फ़ाइलें और आदेश सुरक्षित SSH सत्र के अंदर स्थानांतरित किए जाते हैं;
- फाइल और कमांड दोनों भेजने के लिए एक कनेक्शन का उपयोग किया जाता है;
- प्रतीकात्मक लिंक, इंटरप्ट/रिज्यूम ट्रांसफर, फाइल डिलीट फंक्शन आदि समर्थित हैं;
- एक नियम के रूप में, उन चैनलों में जहां एफ़टीपी धीमा है या विफल हो रहा है, एसएफ़टीपी कनेक्शन तेज़ और अधिक विश्वसनीय है;
- SSH कुंजियों का उपयोग करके प्रमाणित करने की संभावना।
Windows में SFTP कार्यान्वयन
ऐतिहासिक रूप से, विंडोज ऑपरेशन सिस्टम एक सुरक्षित एसएफटीपी सर्वर चलाने के लिए कोई अंतर्निहित उपकरण प्रदान नहीं करता है। इन उद्देश्यों के लिए, कोर FTP, FileZilla, CYGWIN, OpenSSH, FTP शेल, IPSwitch, आदि जैसे ओपन-सोर्स या मालिकाना समाधानों का उपयोग किया गया है। हालाँकि, कई साल पहले Microsoft ने Win32 के लिए OpenSSH पोर्ट का अपना संस्करण जारी किया था। इस प्रोजेक्ट को Win32-OpenSSH . कहा जाता है ।
आइए Win32 OpenSSH का उपयोग करके Windows 10 या Windows Server 2019/2016/2012 R2 चलाने वाले SFTP सर्वर के कॉन्फ़िगरेशन पर विचार करें पैकेज।
Windows 10 1803+/Windows Server 2019 पर Win32 OpenSSH इंस्टॉल करना
विंडोज 10 बिल्ड 1803 और नए और विंडोज सर्वर 2019 में, ओपनएसएसएच पैकेज पहले से ही आरएसएटी जैसे फीचर ऑन डिमांड (एफओडी) के रूप में ऑपरेटिंग सिस्टम में शामिल है।
आप निम्न PowerShell cmdlet का उपयोग करके Windows 10 और Windows Server 2019 पर OpenSSH सर्वर स्थापित कर सकते हैं:
Add-WindowsCapability -Online -Name OpenSSH.Server*
या DISM का उपयोग करना:dism /Online /Add-Capability /CapabilityName:OpenSSH.Server~~~~0.0.1.0
इसके अलावा आप विंडोज 10 जीयूआई से ओपनएसएसएच सर्वर जोड़ सकते हैं (सेटिंग्स -> ऐप्स -> वैकल्पिक सुविधाएं -> एक सुविधा जोड़ें -> एसएसएच सर्वर खोलें -> इंस्टॉल करें )।
- OpenSSH निष्पादन योग्य निर्देशिका में स्थित हैं:
c:\windows\system32\OpenSSH\
; - द sshd_config कॉन्फ़िगरेशन फ़ाइल निर्देशिका में स्थित है:
C:\ProgramData\ssh
(यह निर्देशिका sshd सेवा की पहली शुरुआत के बाद बनाई गई है); - लॉग फ़ाइल:
c:\windows\system32\OpenSSH\logs\sshd.log
; - Authorized_keys फ़ाइल और कुंजियों को एक निर्देशिका में संग्रहीत किया जाता है:
%USERPROFILE%\.ssh\
।
अब आप लिनक्स की तरह एसएसएच के माध्यम से विंडोज 10 से जुड़ सकते हैं।
Windows Server 2016/2012 R2 पर Win32 OpenSSH इंस्टॉल करें
Windows 10 के पिछले संस्करणों में और Windows Server 2016/2012 R2 में, आपको GitHub (https://github.com/PowerShell/Win32-OpenSSH/releases) से OpenSSH को डाउनलोड और इंस्टॉल करना होगा। आपको Windows x64 के लिए एक पैकेज संस्करण डाउनलोड करने की आवश्यकता है:OpenSSH-Win64.zip (3,5 एमबी) ।
- संग्रह को लक्ष्य निर्देशिका में निकालें:C:\OpenSSH-Win;
- उन्नत पावरशेल क्ली शुरू करें और ओपनएसएसएच फ़ोल्डर में स्विच करें:
Cd C:\OpenSSH-Win
- ओपनएसएसएच निर्देशिका के पथ को पथ पर्यावरण चर में जोड़ें (सिस्टम गुण -> उन्नत टैब -> पर्यावरण चर -> पथ चुनें और संपादित करें सिस्टम चर -> ओपनएसएसएच फ़ोल्डर में पथ जोड़ें);
- ओपनएसएसएच सर्वर स्थापित करें:
.\install-sshd.ps1
(एक हरा संदेश दिखाई देना चाहिए "sshd और ssh-agent सेवाएं सफलतापूर्वक स्थापित "); - सर्वर के लिए SSH कुंजियाँ बनाएँ (sshd सेवा प्रारंभ करने के लिए आवश्यक):
ssh-keygen.exe –A
ssh-keygen: generating new host keys: RSA DSA ECDSA ED25519
- SSHD सेवा के लिए ऑटोस्टार्ट सक्षम करें और निम्न PowerShell सेवा प्रबंधन आदेशों का उपयोग करके इसे प्रारंभ करें:
Set-Service -Name sshd -StartupType ‘Automatic’
Start-Service sshd
- अपना कंप्यूटर रीस्टार्ट करें:
Restart-Computer
- आने वाले SSH ट्रैफ़िक के लिए Windows फ़ायरवॉल में TCP पोर्ट 22 खोलने के लिए PowerShell का उपयोग करें:
New-NetFirewallRule -Protocol TCP -LocalPort 22 -Direction Inbound -Action Allow -DisplayName SSH
नोट . पिछला आदेश पुराने डेस्कटॉप विंडोज संस्करणों में काम नहीं करेगा। इस मामले में एक अन्य कमांड का उपयोग किया जाता है:netsh advfirewall firewall add rule name='SSH Port' dir=in action=allow protocol=TCP localport=22
- किसी भी टेक्स्ट एडिटर में SSHD कॉन्फ़िगरेशन फ़ाइल (C:\ProgramData\SSH\sshd_config) खोलें। सबसिस्टम sftp . का मान ढूंढें और जांचें निर्देश। sftp-server.exe फ़ाइल यहां निर्दिष्ट की जानी चाहिए।
AllowGroups corp\sftp_users #
केवल इस डोमेन समूह के उपयोगकर्ताओं के लिए OpenSSH से जुड़ने की अनुमति दें
AuthenticationMethods password #
पासवर्ड प्रमाणीकरण सक्षम करें (SSH कुंजियों का उपयोग नहीं किया जा सकता)ForceCommand internal-sftp
ChrootDirectory C:\inetpub\wwwroot\ftpfolder #
SFTP उपयोगकर्ताओं के लिए डिफ़ॉल्ट निर्देशिका
WinSCP का उपयोग करके SFTP कनेक्शन का परीक्षण करना
आइए SFTP प्रोटोकॉल का उपयोग करके बनाए गए SSH सर्वर से कनेक्ट करने का प्रयास करें। ऐसा करने के लिए, मुफ़्त WinSCP . का उपयोग करें क्लाइंट.
कनेक्शन कॉन्फ़िगरेशन विंडो में, SFTP . चुनें फ़ाइल स्थानांतरण प्रोटोकॉल के रूप में, सर्वर नाम और Windows खाते के क्रेडेंशियल निर्दिष्ट करें, जो कनेक्शन के लिए उपयोग किया जाता है (कुंजी प्रमाणीकरण को कॉन्फ़िगर करना भी संभव है)।
जब आप पहली बार कनेक्ट करने का प्रयास करते हैं, तो स्थानीय कैश में नहीं मिली होस्ट कुंजी की निम्न सूचना प्रकट होती है।
यदि सब कुछ सही ढंग से कॉन्फ़िगर किया गया है, तो क्लाइंट SFTP सर्वर से कनेक्ट होगा और उपयोगकर्ता होम निर्देशिका में फ़ाइलों की सूची प्रदर्शित करेगा (डिफ़ॉल्ट रूप से, यह उपयोगकर्ता प्रोफ़ाइल वाली निर्देशिका है)।
परिचित फ़ाइल प्रबंधक इंटरफ़ेस का उपयोग करना (कुल कमांडर की तरह ), आप सर्वर और क्लाइंट के बीच फ़ाइलों की प्रतिलिपि बना सकते हैं। सुरक्षित SFTP का उपयोग करके फ़ाइलें स्थानांतरित की जाती हैं।
Win32 OpenSSH को अनइंस्टॉल कैसे करें?
अपने सिस्टम से Win32 OpenSSH को सही तरीके से अनइंस्टॉल करने के लिए:
- उन्नत पावरशेल सत्र चलाएं;
- SSHD सेवा बंद करें:
Stop-Service sshd
- sshd सेवा को अनइंस्टॉल करें:
.\uninstall-sshlsa.ps1
sshd successfully uninstalled ssh-agent successfully uninstalled