কম্পিউটার টিউটোরিয়াল

বিল্ট-ইন OpenSSH সার্ভার ব্যবহার করে SSH-এর মাধ্যমে Windows সংযোগ করা

Windows 10 1809 এবং Windows Server 2019-এ OpenSSH-ভিত্তিক একটি বিল্ট-ইন SSH সার্ভার যোগ করা হয়েছে। এই আর্টিকেলে আমরা দেখাব কীভাবে Windows 10-এ OpenSSH সার্ভার ইনস্টল ও কনফিগার করতে হয় এবং দূর থেকে সুরক্ষিত SSH প্রোটোকল ব্যবহার করে সংযোগ স্থাপন করতে হয় (Linux-এ যেভাবে হয় ঠিক তেমনি 🙂 )।

আপনি পূর্ববর্তী Windows ভার্সনগুলিতেও OpenSSH সার্ভার ইনস্টল করতে পারেন, কিন্তু আপনাকে ম্যানুয়ালি GitHub থেকে Win32-OpenSSH পোর্ট ডাউনলোড ও ইনস্টল করতে হবে (https://github.com/powershell/Win32-OpenSSH)। Win32-OpenSSH ইনস্টল ও কনফিগার করার উদাহরণ "How to Install & Configure SFTP Server (SSH FTP) on Windows?" আর্টিকেলে দেওয়া আছে।

বিষয়সূচি:

  • Windows-এ OpenSSH সার্ভার ইনস্টল করার পদ্ধতি?
  • Windows 10/Windows Server 2019-এ SSH সার্ভার কনফিগার করা
  • OpenSSH সার্ভার কনফিগারেশন ফাইল (sshd_config)
  • Windows 10-এ SSH দিয়ে সংযোগ করার পদ্ধতি?

Windows-এ OpenSSH সার্ভার ইনস্টল করার পদ্ধতি?

Windows 10 1903-এ OpenSSH Server ফিচার ইনস্টল করার পদ্ধতি দেখি (Windows Server 2019-এ প্রক্রিয়া একই)।

OpenSSH প্যাকেজ (RSAT-এর মতো) এই (এবং নতুনতর) Windows ভার্সনগুলিতে Feature on Demand (FoD) হিসেবে যোগ করা হয়েছে।

আপনার ডায়রেক্ট ইন্টারনেট অ্যাক্সেস থাকলে, আপনি PowerShell ব্যবহার করে OpenSSH ইনস্টল করতে পারেন:

Add-WindowsCapability -Online -Name OpenSSH.Server*

অথবা DISM ব্যবহার করে:

dism /Online /Add-Capability /CapabilityName:OpenSSH.Server~~~~0.0.1.0

আপনি Windows 10-এ Settings প্যানেল 통해서ও OpenSSH ইনস্টল করতে পারেন (Apps -> Apps&Features -> Manage optional features -> Add a feature)। লিস্টে Open SSH Server খুঁজে বের করুন এবং Install ক্লিক করুন।

বিল্ট-ইন OpenSSH সার্ভার ব্যবহার করে SSH-এর মাধ্যমে Windows সংযোগ করা

OpenSSH সার্ভার ইনস্টল হয়েছে কিনা নিশ্চিত করতে কমান্ডটি চালান:
Get-WindowsCapability -Online | ? Name -like 'OpenSSH.Ser*'

State : Installed

বিল্ট-ইন OpenSSH সার্ভার ব্যবহার করে SSH-এর মাধ্যমে Windows সংযোগ করা

Windows 10/Windows Server 2019-এ SSH সার্ভার কনফিগার করা

Windows-এ OpenSSH সার্ভার ইনস্টল করার পর, আপনাকে sshd সার্ভিসের স্টার্টআপ টাইপ অটোমেটিকに変更 করতে হবে এবং PowerShell ব্যবহার করে সার্ভিসটি শুরু করতে হবে:
Set-Service -Name sshd -StartupType 'Automatic'
Start-Service sshd

বিল্ট-ইন OpenSSH সার্ভার ব্যবহার করে SSH-এর মাধ্যমে Windows সংযোগ করা

netstat ব্যবহার করে নিশ্চিত করুন যে SSH সার্ভার চলছে এবং TCP পোর্ট 22-এ কানেকশনের জন্য অপেক্ষা করছে:
netstat -na| find ":22"
বিল্ট-ইন OpenSSH সার্ভার ব্যবহার করে SSH-এর মাধ্যমে Windows সংযোগ করা

Windows Defender Firewall ইনবাউন্ড কানেকশন TCP পোর্ট 22-এ অনুমতি দেয় কিনা নিশ্চিত করুন:
Get-NetFirewallRule -Name *OpenSSH-Server* |select Name, DisplayName, Description, Enabled

Name DisplayName Description Enabled ---- ----------- ----------- ------- OpenSSH-Server-In-TCP OpenSSH SSH Server (sshd) Inbound rule for OpenSSH SSH Server (sshd) True

বিল্ট-ইন OpenSSH সার্ভার ব্যবহার করে SSH-এর মাধ্যমে Windows সংযোগ করা

যদি রুলটি ডিজেবলড থাকে (Enabled=False) বা অনুপস্থিত থাকে, তবে New-NetFirewallRule ক্যাডলেট ব্যবহার করে একটি নতুন ইনবাউন্ড রুল তৈরি করতে পারেন:

New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22

ডিফল্টভাবে, গুরুত্বপূর্ণ OpenSSH কম্পোনেন্টগুলো এই ফোল্ডারগুলিতে অবস্থিত:

  • OpenSSH Server এক্সিকিউটেবল: C:\Windows\System32\OpenSSH\
  • sshd_config ফাইল (প্রথম সার্ভিস স্টার্টের পর তৈরি হয়): C:\ProgramData\ssh
  • OpenSSH লগ: C:\windows\system32\OpenSSH\logs\sshd.log
  • authorized_keys ফাইল এবং কীগুলো: %USERPROFILE%\.ssh\

OpenSSH ইনস্টলেশনের পর, কম্পিউটারে একটি নতুন লোকাল ইউজার (sshd) তৈরি হয়।

OpenSSH সার্ভার কনফিগারেশন ফাইল (sshd_config)

আপনি কনফিগ ফাইলে আপনার OpenSSH সার্ভার সেটিংস পরিবর্তন করতে পারেন: %programdata%\ssh\sshd_config.

উদাহরণস্বরূপ, নির্দিষ্ট ডোমেন ইউজার অ্যাকাউন্ট (বা সকল ডোমেন ইউজার) এর জন্য SSH কানেকশন বাধা দিতে, ফাইলের শেষে এই ডিরেক্টিভগুলো যোগ করুন:

DenyUsers woshub\admin@192.168.1.10 DenyUsers corp\*

নির্দিষ্ট ডোমেন গ্রুপের জন্য শুধু SSH কানেকশন অনুমতি দিতে:

AllowGroups woshub\sshadmins

অথবা একটি লোকাল গ্রুপের জন্য অ্যাক্সেস অনুমতি দিতে:

AllowGroups sshadmins

অ্যাডমিনিস্ট্রেটর প্রিভিলেজযুক্ত অ্যাকাউন্টগুলোর অ্যাক্সেস বাধা দিতে পারেন। এই কেসে, আপনার SSH সেশনে কোনো প্রিভিলেজড অ্যাকশন করতে হলে আপনাকে runas ব্যবহার করতে হবে।

DenyGroups Administrators

নিচের ডিরেক্টিভগুলো RSA কী এবং পাসওয়ার্ড ব্যবহার করে SSH অ্যাক্সেস অনুমতি দেয় (পরবর্তী আর্টিকেলে RSA কী ব্যবহার করে Windows-এ SSH অ্যাক্সেস করার বিস্তারিত দেখানো হবে):

PubkeyAuthentication yes PasswordAuthentication yes

আপনি sshd_config ফাইলের Port ডিরেক্টিভে OpenSSH যে পোর্টে কানেকশন গ্রহণ করে সেটি পরিবর্তন করতে পারেন।

বিল্ট-ইন OpenSSH সার্ভার ব্যবহার করে SSH-এর মাধ্যমে Windows সংযোগ করা

sshd_config ফাইলে যেকোনো পরিবর্তন করার পর, sshd সার্ভিস রিস্টার্ট করতে হবে:

restart-service sshd

Windows 10-এ SSH দিয়ে সংযোগ করার পদ্ধতি?

এখন আপনি আপনার Windows 10-এ SSH ক্লায়েন্ট দিয়ে সংযোগ করার চেষ্টা করতে পারেন (আমি PuTTY ব্যবহার করছি, কিন্তু আপনি বিল্ট-ইন Windows SSH ক্লায়েন্টও ব্যবহার করতে পারেন)।

প্রথম সংযোগের সময়,Известный SSH হোস্টের লিস্টে হোস্টটি যোগ করার স্ট্যান্ডার্ড রিকোয়েস্ট প্রদর্শিত হবে।

বিল্ট-ইন OpenSSH সার্ভার ব্যবহার করে SSH-এর মাধ্যমে Windows সংযোগ করা

Yes ক্লিক করুন, এবং Windows ইউজার হিসেবে আপনার Windows 10-এ লগ অন করুন।

বিল্ট-ইন OpenSSH সার্ভার ব্যবহার করে SSH-এর মাধ্যমে Windows সংযোগ করা

যদি SSH সংযোগ সফল হয়, cmd.exe শেল একটি প্রম্পট স্ট্রিংয়ের সাথে стар্ট হবে।

admin@win10pc C:\Users\admin>

বিল্ট-ইন OpenSSH সার্ভার ব্যবহার করে SSH-এর মাধ্যমে Windows সংযোগ করা

আপনি কমান্ড প্রম্পটে বিভিন্ন কমান্ড, স্ক্রিপ্ট বা অ্যাপ রান করতে পারেন।

বিল্ট-ইন OpenSSH সার্ভার ব্যবহার করে SSH-এর মাধ্যমে Windows সংযোগ করা

আমি PowerShell কনসোলে কাজ করা পছন্দ করি। এটি শুরু করতে এই কমান্ডটি চালান:

powershell.exe

বিল্ট-ইন OpenSSH সার্ভার ব্যবহার করে SSH-এর মাধ্যমে Windows সংযোগ করা

OpenSSH-এর জন্য ডিফল্ট cmd.exe শেলকে PowerShell-এ পরিবর্তন করতে, নিচের PowerShell কমান্ড ব্যবহার করে রেজিস্ট্রিতে পরিবর্তন আনুন:

New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -PropertyType String –Force

বিল্ট-ইন OpenSSH সার্ভার ব্যবহার করে SSH-এর মাধ্যমে Windows সংযোগ করা

আপনার SSH সংযোগ রিস্টার্ট করুন এবং নিশ্চিত করুন যে PowerShell এখন ডিফল্ট SSH শেল হিসেবে ব্যবহার হচ্ছে (এটি PS C:\Users\admin> দ্বারা দেখানো হয়)।

বিল্ট-ইন OpenSSH সার্ভার ব্যবহার করে SSH-এর মাধ্যমে Windows সংযোগ করা

আপনার SSH সেশনে PowerShell কনসোল শুরু হয়েছে, এবং পরিচিত ফিচারগুলোতে কাজ করে: ট্যাব অটোকমপ্লিশন, PSReadLine কালার হাইলাইটিং, কমান্ড ইতিহাস, ইত্যাদি। যদি বর্তমান ইউজার লোকাল অ্যাডমিনিস্ট্রেটর গ্রুপের সদস্য হয়, তবে UAC সক্রিয় থাকলেও সেশনের সকল কমান্ড ইলিভেটেড এক্সিকিউট হয়।

  1. উইন্ডোজে FTP সার্ভার তৈরি করুন যাতে এক্সটার্নাল নেটওয়ার্ক থেকে অ্যাক্সেসযোগ্য হয়

  2. পাইথনের বিল্ট-ইন HTTP সার্ভার দিয়ে ফাইল ট্রান্সফার করা

  3. সমাধান: Omegle সার্ভার সংযোগ ত্রুটি

  4. SSH দিয়ে ক্র্যাশ করা উইন্ডোজ PC অ্যাক্সেস করুন: ধাপে ধাপে গাইড