Windows Server 2022 huja na OpenSSH Server kama kipengele cha hiari: hakuna kisakinishi cha mtu wa tatu, na masasisho huja kupitia Windows Update. Ukishaiwasha, unaweza kuendesha PowerShell kupitia SSH, kunakili faili kwa scp, na kuelekeza skripti au CI kwenye seva kama mashine yoyote ya Linux.
Kila kitu hapa chini kilifanywa kwenye picha yetu ya Windows Server 2022, katika PowerShell ya msimamizi kupitia RDP (jinsi ya kuunganisha).
Kwanza, mtandao. Kwenye mpango wa Windows wenye NAT, uelekezaji pekee wa kuingia unaenda kwenye RDP, kwa hiyo SSH haifikiki kutoka intaneti. Kwa SSH kutoka nje unahitaji mpango wenye IPv4 yake, kama Windows Small-IP. Mlango ukiwa unafikika, hatua hapa chini huchukua takriban dakika tano.
1. Sakinisha OpenSSH Server
Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH*'
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
Mteja tayari amesakinishwa; seva inaonyesha NotPresent hadi uiongeze. Kwenye seva yetu usakinishaji ulichukua sekunde 28.
2. Iwashe na uifanye ianze wakati wa kuwasha
Start-Service sshd
Set-Service -Name sshd -StartupType Automatic
Get-NetFirewallRule -Name *OpenSSH*
Kusakinisha kipengele huunda kanuni ya ngome OpenSSH-Server-In-TCP (mlango 22, kuingia, inaruhusiwa), kwa hiyo huhitaji kuongeza yako.
3. Fanya PowerShell kuwa shell ya msingi
Kwa chaguo-msingi kipindi cha SSH hufunguka katika cmd.exe. Badilisha kuwa PowerShell:
New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -PropertyType String -Force
Miunganisho mipya hupata PowerShell 5.1 mara moja; hakuna haja ya kuwasha upya.
4. Ongeza ufunguo wako kwa Administrator: faili inayomkwamisha kila mtu
Huu ni mtego wa kwanza wa Windows. Kwa akaunti katika kikundi cha Administrators, sshd haisomi C:\Users\<name>\.ssh\authorized_keys. Inasoma faili moja ya pamoja, C:\ProgramData\ssh\administrators_authorized_keys, na tu ikiwa hakuna mtu isipokuwa Administrators na SYSTEM anayeweza kuiandika:
$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 pia ni muhimu. Katika jaribio letu ufunguo uleule uliohifadhiwa kwa Out-File (UTF-16, chaguo-msingi la PowerShell 5.1) ulikataliwa kwa Permission denied (publickey). Kutoka kwenye mashine yako:
ssh Administrator@YOUR.SERVER.IP
Unapaswa kupata kidokezo cha PowerShell bila nenosiri. Kwa watumiaji wasio wasimamizi, C:\Users\<name>\.ssh\authorized_keys ya kawaida inafanya kazi.
5. Zima kuingia kwa nenosiri: mtego wa pili
Badiliko la wazi, PasswordAuthentication no, halitoshi kwenye toleo hili. OpenSSH 8.1 bado inatoa keyboard-interactive, inayouliza nenosiri lilelile la Windows. Katika jaribio letu, kuingia bila ufunguo kuliendelea kuonyesha keyboard-interactive hadi tulipoizima pia. Mpangilio lazima pia uwe kabla ya kizuizi cha Match Group administrators mwishoni mwa faili, vinginevyo unatumika kwa wasimamizi pekee. Amri hii huweka mistari yote miwili juu:
$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
Acha kipindi chako cha sasa cha SSH wazi na ujaribu kutoka terminal ya pili. Jaribio la nenosiri pekee sasa linapaswa kupata:
Permission denied (publickey).
Hayo ndiyo yalikuwa matokeo katika jaribio letu kwa Administrator na kwa mtumiaji wa kawaida, huku kuingia kwa ufunguo kukiendelea kufanya kazi.
Unachoweza kufanya nayo
- Endesha amri kutoka popote:
ssh Administrator@IP 'Get-Service sshd'. - Nakili faili:
scp .\app.zip Administrator@IP:C:/apps/. - Bana mlango kwa anwani yako kwa njia ileile ya orodha ya IP kama kwa RDP:
Set-NetFirewallRule -Name OpenSSH-Server-In-TCP -RemoteAddress 203.0.113.10.
Mpango gani
SSH kutoka nje inahitaji IPv4 ya umma: Windows Small-IP (vCPU 4, GB 4, GB 50) ni $28 kwa mwezi, Windows Medium-IP (vCPU 6, GB 6) ni $36 kwa mwezi. Windows ni Server 2022 yenye leseni yako mwenyewe (BYOL imeelezwa). Ona mipango yote minne kwenye ukurasa wa VPS ya Windows. Ili programu iendelee kufanya kazi baada ya kukata muunganisho, ona kuendesha skripti 24/7 kwenye Windows Server.
Maoni
Bado hakuna maoni. Kuwa wa kwanza.