−25%

د Windows پر کلنۍ تادیه، تر ۳۱ اکتوبر. پلانونه وګورئ

EQVPS
پیل وکړئ

په Windows Server 2022 کې OpenSSH Server څنګه نصب کړو (د کیلي ننوتل، PowerShell شېل)

په Windows Server 2022 VPS کې جوړ شوی OpenSSH Server نصب کړئ، PowerShell ډیفالټ شېل کړئ، د Administrator په توګه په کیلي ننوځئ او د پاسورډ ننوتل بند کړئ. د Windows دوه هغه جالونه هم شامل دي چې د کیلي ننوتل ناکاموي.

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 چلول.

پوښتنې

کله چې RDP شته، په Windows کې SSH ولې؟

سکریپټونه او وسایل په SSH خبرې کوي. په سرور کې د OpenSSH سره تاسو د Linux ماشین یا CI دندې څخه د PowerShell کمانډونه چلوئ، د scp په مرسته فایلونه کاپي کوئ او اتومات سیسټم ته اجازه ورکوئ چې پرته له ډېسکټاپ ناستې سرور اداره کړي.

زما کیلي د عادي کارن لپاره کار کوي، خو د Administrator لپاره نه. ولې؟

د Administrators ډلې غړو لپاره د Windows OpenSSH د ~/.ssh/authorized_keys فایل له پامه غورځوي او C:\ProgramData\ssh\administrators_authorized_keys لولي. په دې فایل کې باید یوازې Administrators او SYSTEM لیکلی شي، که نه sshd یې په چوپتیا پرېږدي.

ایا د NAT سره په Windows پلان کې SSH ته رسېدلی شم؟

له بهر څخه نه. د NAT سره په Windows پلان کې شخصي بهرنی پورټ RDP (3389) ته لېږدول شوی، او دا یوازینی راتلونکی لېږد دی. د انټرنېټ څخه د SSH لپاره داسې Windows پلان واخلئ چې خپل IPv4 ولري. د سرور دننه OpenSSH بیا هم د محلي وسایلو لپاره کار کوي.

Windows Server 2022 د OpenSSH کومه نسخه نصبوي؟

OpenSSH 8.1p1 for Windows. له همدې امله د پاسورډ تنظیمات د نوي نوم KbdInteractiveAuthentication پر ځای ChallengeResponseAuthentication کاروي.

تبصرې

لا تبصرې نشته. لومړی اوسئ.

یوه تبصره پریږدئ

تبصرې د ښکاره کیدو مخکې اعتدال کیږي.