আপনি উইন্ডোজের অফিসিয়াল ওপেনএসএসএইচ প্যাকেজ ব্যবহার করে ক্লায়েন্ট এবং উইন্ডোজ সার্ভারের মধ্যে SFTP (সিকিউর FTP) প্রোটোকলের মাধ্যমে নিরাপদ ফাইল ট্রান্সফার সহজে সেট আপ করতে পারেন। এই আর্টিকেলে আমরা দেখাব কিভাবে উইন্ডোজ ১০ বা উইন্ডোজ সার্ভার ২০১৬/২০১২ R2-এ Win32-OpenSSH ব্যবহার করে SFTP সার্ভার চালানো যায়।
সামগ্রী:
- SFTP কী?
- উইন্ডোজে SFTP বাস্তবায়ন
- উইন্ডোজ ১০ ১৮০৩+/উইন্ডোজ সার্ভার ২০১৯-এ Win32 OpenSSH ইনস্টল করা
- উইন্ডোজ সার্ভার ২০১৬/২০১২ R2-এ Win32 OpenSSH ইনস্টল করা
- WinSCP ব্যবহার করে SFTP সংযোগ পরীক্ষা
- Win32 OpenSSH আনইনস্টল কীভাবে করবেন?
SFTP কী?
SFTP (সিকিউর ফাইল ট্রান্সফার প্রোটোকল, সিকিউর FTP বা SSH FTP) হল SSH প্রোটোকলের এক্সটেনশন, যা UNIX/লিনাক্স সিস্টেমের মানদণ্ড। ব্যবহারকারীর দৃষ্টিতে এটি FTP-এর মতোই, কিন্তু আসলে এটি সম্পূর্ণ ভিন্ন একটি প্রোটোকল, যার FTP-এর সাথে কিছুই সাধারণ নেই। ডেটা ক্লায়েন্ট এবং সার্ভারের মধ্যে SSH টানেল (TCP পোর্ট ২২) এর মাধ্যমে স্থানান্তরিত হয়।
SFTP-এর মূল সুবিধাগুলো:
- ফাইল এবং কমান্ড একটি নিরাপদ SSH সেশনের ভিতর থেকে স্থানান্তরিত হয়;
- ফাইল এবং কমান্ড পাঠাতে একক সংযোগ ব্যবহার হয়;
- সিম্বলিক লিঙ্ক, ইন্টারাপ্ট/রিজিউম ট্রান্সফার, ফাইল ডিলিট ফাংশন ইত্যাদি সমর্থিত;
- যেসব চ্যানেলে FTP ধীর বা ব্যর্থ হয়, সেখানে SFTP সংযোগ দ্রুত এবং বিশ্বস্ত হয়;
- SSH কী ব্যবহার করে প্রমাণীকরণের সুযোগ থাকে।
SFTP এবং FTPS প্রোটোকলগুলোর মধ্যে বিভ্রান্ত হবেন না। FTPS মূলত একটি SSL সার্টিফিকেট সহ সাধারণ FTP, আর SFTP হল SSH সেশনের ভিতরে FTP ডেটা এবং কমান্ড পাঠানোর প্রোটোকল।
উইন্ডোজে SFTP বাস্তবায়ন
ঐতিহাসিকভাবে, উইন্ডোজ অপারেটিং সিস্টেম নিরাপদ SFTP সার্ভার চালানোর জন্য কোনো বিল্ট-ইন টুল সরবরাহ করে না। এই উদ্দেশ্যে ওপেন-সোর্স বা প্রোপ্রায়েটরি সমাধান যেমন Core FTP, FileZilla, CYGWIN, OpenSSH, FTP Shell, IPSwitch ইত্যাদি ব্যবহার করা হত। কিন্তু কয়েক বছর আগে মাইক্রোসফট Win32-এর জন্য নিজস্ব OpenSSH পোর্ট প্রকাশ করেছিল। এই প্রজেক্টকে Win32-OpenSSH বলা হয়।
চলুন উইন্ডোজ ১০ বা উইন্ডোজ সার্ভার ২০১৯/২০১৬/২০১২ R2-এ Win32 OpenSSH প্যাকেজ ব্যবহার করে SFTP সার্ভার কনফিগার করি।
উইন্ডোজ ১০ ১৮০৩+/উইন্ডোজ সার্ভার ২০১৯-এ Win32 OpenSSH ইনস্টল করা
উইন্ডোজ ১০ বিল্ড ১৮০৩ এবং নতুনতর সংস্করণগুলোর সাথে উইন্ডোজ সার্ভার ২০১৯-এ OpenSSH প্যাকেজ ইতিমধ্যেই ফিচার অন ডিমান্ড (FoD) হিসেবে RSAT-এর মতোই অপারেটিং সিস্টেমে অন্তর্ভুক্ত রয়েছে।
পাওয়ারশেল কমান্ডলেট ব্যবহার করে উইন্ডোজ ১০ এবং উইন্ডোজ সার্ভার ২০১৯-এ OpenSSH সার্ভার ইনস্টল করতে পারেন:
Add-WindowsCapability -Online -Name OpenSSH.Server*
অথবা DISM ব্যবহার করে:
dism /Online /Add-Capability /CapabilityName:OpenSSH.Server~~~~0.0.1.0
এছাড়াও উইন্ডোজ ১০ GUI থেকে (Settings → Apps → Optional Features → Add a feature → Open SSH Server → Install) OpenSSH সার্ভার যোগ করতে পারেন।

- OpenSSH এক্সিকিউটেবল ফাইলগুলো অবস্থিত:
c:\windows\system32\OpenSSH\; - sshd_config কনফিগারেশন ফাইল অবস্থিত:
C:\ProgramData\ssh(এই ডিরেক্টরি sshd সার্ভিস প্রথমবার শুরু হলে তৈরি হয়); - লগ ফাইল:
c:\windows\system32\OpenSSH\logs\sshd.log; authorized_keysফাইল এবং কীগুলো সংরক্ষিত থাকে:%USERPROFILE%\.ssh\।
এখন আপনি লিনাক্সের মতোই উইন্ডোজ ১০-এ SSH経由 সংযোগ করতে পারেন।
উইন্ডোজ সার্ভার ২০১৬/২০১২ R2-এ Win32 OpenSSH ইনস্টল করা
পূর্বের উইন্ডোজ ১০ সংস্করণগুলো এবং উইন্ডোজ সার্ভার ২০১৬/২০১২ R2-এ আপনাকে GitHub (https://github.com/PowerShell/Win32-OpenSSH/releases) থেকে OpenSSH ডাউনলোড ও ইনস্টল করতে হবে। আপনার উইন্ডোজ x64-এর জন্য প্যাকেজ সংস্করণ: OpenSSH-Win64.zip (৩.৫ MB) ডাউনলোড করুন।
- আর্কাইভটি টার্গেট ডিরেক্টরিতে এক্সট্রাক্ট করুন: C:\OpenSSH-Win;
- উন্নত পাওয়ারশেল CLI শুরু করুন এবং OpenSSH ফোল্ডারে যান:
Cd C:\OpenSSH-Win - OpenSSH ডিরেক্টরির পাথ Path এনভায়রনমেন্ট ভেরিয়েবলে যোগ করুন (System Properties → Advanced tab → Environment Variables → Path সিস্টেম ভেরিয়েবল নির্বাচন ও এডিট করুন → OpenSSH ফোল্ডারের পাথ যোগ করুন);

- OpenSSH সার্ভার ইনস্টল করুন:
.\install-sshd.ps1(হরিত বার্তা দেখাবে “sshd and ssh-agent services successfully installed”);
- সার্ভারের জন্য SSH কী জেনারেট করুন (sshd সার্ভিস শুরু করতে প্রয়োজন):
ssh-keygen.exe –A
ssh-keygen: generating new host keys: RSA DSA ECDSA ED25519
- SSHD সার্ভিসের অটোস্টার্ট সক্ষম করুন এবং পাওয়ারশেল সার্ভিস ম্যানেজমেন্ট কমান্ড দিয়ে শুরু করুন:
Set-Service -Name sshd -StartupType ‘Automatic’
Start-Service sshd - কম্পিউটার রিস্টার্ট করুন:
Restart-Computer - উইন্ডোজ ফায়ারওয়ালে TCP পোর্ট ২২ খুলুন ইনবাউন্ড SSH ট্রাফিকের জন্য:
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) যেকোনো টেক্সট এডিটর দিয়ে খুলুন। Subsystem sftp ডিরেক্টিভের মান খুঁজে বের করুন এবং যাচাই করুন। এখানে sftp-server.exe ফাইল নির্দিষ্ট করা উচিত।

আপনি sshd_config কনফিগারেশন ফাইলে নিচের প্যারামিটারগুলিও কনফিগার করতে পারেন:
AllowGroups corp\sftp_users # এই ডোমেন গ্রুপের ইউজারদের OpenSSH-এ সংযোগের অনুমতি
AuthenticationMethods password # পাসওয়ার্ড প্রমাণীকরণ সক্ষম (SSH কী ব্যবহার করা যাবে না)
ForceCommand internal-sftp
ChrootDirectory C:\inetpub\wwwroot\ftpfolder # SFTP ইউজারদের ডিফল্ট ডিরেক্টরি
WinSCP ব্যবহার করে SFTP সংযোগ পরীক্ষা
তैयার SSH সার্ভারের সাথে SFTP প্রোটোকল ব্যবহার করে সংযোগ চেষ্টা করি। এর জন্য ফ্রি WinSCP ক্লায়েন্ট ব্যবহার করব।
সংযোগ কনফিগারেশন উইন্ডোতে ফাইল ট্রান্সফার প্রোটোকল হিসেবে SFTP নির্বাচন করুন, সার্ভারের নাম এবং সংযোগের জন্য ব্যবহৃত উইন্ডোজ অ্যাকাউন্টের শংসাপত্র দিন (কী-বেসড প্রমাণীকরণও কনফিগার করা যায়)।

প্রথমবার সংযোগ করার সময় লোকাল ক্যাশে হোস্ট কী না পাওয়ার বিজ্ঞপ্তি দেখাবে।

যদি সবকিছু সঠিকভাবে কনফিগার করা থাকে, তবে ক্লায়েন্ট SFTP সার্ভারের সাথে সংযোগ স্থাপন করবে এবং ইউজার হোম ডিরেক্টরির (ডিফল্টলি ইউজার প্রোফাইল ডিরেক্টরি) ফাইল লিস্ট দেখাবে।
পরিচিত ফাইল ম্যানেজার ইন্টারফেস (যেমন Total Commander) ব্যবহার করে সার্ভার এবং ক্লায়েন্টের মধ্যে ফাইল কপি করতে পারেন। ফাইলগুলো নিরাপদ SFTP ব্যবহার করে ট্রান্সফার হয়।

Win32 OpenSSH আনইনস্টল কীভাবে করবেন?
আপনার সিস্টেম থেকে Win32 OpenSSH সঠিকভাবে আনইনস্টল করতে:
- উন্নত পাওয়ারশেল সেশন চালু করুন;
- SSHD সার্ভিস বন্ধ করুন:
Stop-Service sshd - sshd সার্ভিস আনইনস্টল করুন:
.\uninstall-sshlsa.ps1
sshd successfully uninstalled ssh-agent successfully uninstalled