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 چلول.
تبصرې
لا تبصرې نشته. لومړی اوسئ.