Windows Server 2022-এ OpenSSH Server একটি ঐচ্ছিক ফিচার হিসেবে আসে: তৃতীয় পক্ষের ইনস্টলার নেই, আপডেট আসে Windows Update দিয়ে। চালু হলে আপনি SSH দিয়ে PowerShell চালাতে, scp দিয়ে ফাইল কপি করতে এবং স্ক্রিপ্ট বা CI-কে যেকোনো Linux মেশিনের মতো সার্ভারে লাগাতে পারেন।
নিচের সবকিছু আমরা আমাদের Windows Server 2022 ইমেজে, RDP দিয়ে খোলা অ্যাডমিন PowerShell-এ করেছি (কীভাবে সংযোগ করবেন)।
আগে নেটওয়ার্ক। NAT সহ Windows প্ল্যানে একমাত্র ইনবাউন্ড ফরওয়ার্ড RDP-তে যায়, তাই ইন্টারনেট থেকে SSH-এ পৌঁছানো যায় না। বাইরে থেকে SSH-এর জন্য নিজস্ব IPv4 সহ প্ল্যান দরকার, যেমন Windows Small-IP। পোর্টে পৌঁছানো গেলে নিচের ধাপগুলো প্রায় পাঁচ মিনিট নেয়।
1. OpenSSH Server ইনস্টল করুন
Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH*'
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
ক্লায়েন্ট আগে থেকেই ইনস্টল করা; সার্ভার যোগ না করা পর্যন্ত NotPresent দেখায়। আমাদের সার্ভারে ইনস্টল হতে 28 সেকেন্ড লেগেছে।
2. সার্ভিস চালু করুন এবং বুটে স্বয়ংক্রিয় চালু করুন
Start-Service sshd
Set-Service -Name sshd -StartupType Automatic
Get-NetFirewallRule -Name *OpenSSH*
ফিচারটি ইনস্টল করলে OpenSSH-Server-In-TCP ফায়ারওয়াল নিয়ম (পোর্ট 22, ইনবাউন্ড, অনুমোদিত) তৈরি হয়, তাই নিজে যোগ করতে হয় না।
3. PowerShell-কে ডিফল্ট শেল করুন
ডিফল্টভাবে SSH সেশন cmd.exe-তে খোলে। PowerShell-এ বদলান:
New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -PropertyType String -Force
নতুন সংযোগ সঙ্গে সঙ্গে PowerShell 5.1 পায়; রিস্টার্ট লাগে না।
4. Administrator-এর জন্য কী: যে ফাইলে সবাই হোঁচট খায়
এটি Windows-এর প্রথম ফাঁদ। Administrators গ্রুপের অ্যাকাউন্টের জন্য sshd C:\Users\<name>\.ssh\authorized_keys পড়ে না। এটি একটি সাধারণ ফাইল C:\ProgramData\ssh\administrators_authorized_keys পড়ে, তাও কেবল যদি Administrators ও SYSTEM ছাড়া কেউ তাতে লিখতে না পারে:
$pub = 'ssh-ed25519 AAAA...your-public-key... you@laptop'
Set-Content -Path C:\ProgramData\ssh\administrators_authorized_keys -Value $pub -Encoding ascii
icacls.exe "C:\ProgramData\ssh\administrators_authorized_keys" /inheritance:r /grant "Administrators:F" /grant "SYSTEM:F"
-Encoding ascii-ও গুরুত্বপূর্ণ। আমাদের পরীক্ষায় একই কী Out-File (UTF-16, PowerShell 5.1-এর ডিফল্ট) দিয়ে সংরক্ষণ করলে Permission denied (publickey) দিয়ে প্রত্যাখ্যাত হয়েছে। আপনার মেশিন থেকে:
ssh Administrator@YOUR.SERVER.IP
পাসওয়ার্ড ছাড়াই PowerShell প্রম্পট পাওয়া উচিত। অ্যাডমিন নন এমন ব্যবহারকারীদের জন্য সাধারণ C:\Users\<name>\.ssh\authorized_keys কাজ করে।
5. পাসওয়ার্ড লগইন বন্ধ করুন: দ্বিতীয় ফাঁদ
সোজা পরিবর্তন PasswordAuthentication no এই সংস্করণে যথেষ্ট নয়। OpenSSH 8.1 এখনো keyboard-interactive দেয়, যা একই Windows পাসওয়ার্ড চায়। আমাদের পরীক্ষায় সেটিও বন্ধ না করা পর্যন্ত কী ছাড়া লগইন keyboard-interactive দেখাতে থাকে। তা ছাড়া সেটিংটি ফাইলের শেষে Match Group administrators ব্লকের আগে থাকতে হবে, নইলে এটি শুধু অ্যাডমিনদের ক্ষেত্রে খাটে। এই কমান্ড দুটি লাইনই একেবারে ওপরে বসায়:
$cfg = 'C:\ProgramData\ssh\sshd_config'
$lines = Get-Content $cfg | Where-Object { $_ -notmatch '^#?\s*(PasswordAuthentication|KbdInteractiveAuthentication|ChallengeResponseAuthentication)\s' }
Set-Content $cfg -Value (@('PasswordAuthentication no', 'ChallengeResponseAuthentication no') + $lines) -Encoding ascii
Restart-Service sshd
বর্তমান SSH সেশন খোলা রেখে দ্বিতীয় টার্মিনাল থেকে পরীক্ষা করুন। শুধু পাসওয়ার্ডের চেষ্টা এখন এটি পাওয়া উচিত:
Permission denied (publickey).
আমাদের পরীক্ষায় Administrator ও সাধারণ ব্যবহারকারী দুজনের ক্ষেত্রেই এই ফল এসেছে, আর কী দিয়ে লগইন চালু ছিল।
এ দিয়ে কী করতে পারেন
- যেকোনো জায়গা থেকে কমান্ড চালান:
ssh Administrator@IP 'Get-Service sshd'। - ফাইল কপি করুন:
scp .\app.zip Administrator@IP:C:/apps/। - RDP-এর মতোই পোর্ট আপনার ঠিকানায় সীমিত করুন:
Set-NetFirewallRule -Name OpenSSH-Server-In-TCP -RemoteAddress 203.0.113.10।
কোন প্ল্যান
বাইরে থেকে SSH-এর জন্য পাবলিক IPv4 লাগে: Windows Small-IP (4 vCPU, 4 GB, 50 GB) $28/মাস, Windows Medium-IP (6 vCPU, 6 GB) $36/মাস। Windows হলো আপনার নিজের লাইসেন্স সহ Server 2022 (BYOL ব্যাখ্যা)। চারটি প্ল্যানই Windows VPS পাতায়। সংযোগ বিচ্ছিন্নের পরেও প্রোগ্রাম চালু রাখতে দেখুন Windows Server-এ স্ক্রিপ্ট 24/7 চালান।
মন্তব্য
এখনো কোনো মন্তব্য নেই। প্রথম হোন।