ตรวจและเปิดบริการ
เรียก PowerShell เป็นผู้ดูแลบนเซิร์ฟเวอร์ Windows Server 2025 มี OpenSSH แล้ว ให้ตรวจสถานะแทนติดตั้งซ้ำโดยไม่ดู ตัวอย่างติดตั้งเฉพาะเมื่อขาด เริ่ม sshd และตั้งเริ่มอัตโนมัติ หากดาวน์โหลดล้มเหลวอาจต้องตรวจนโยบายอัปเดต
$cap = Get-WindowsCapability -Online -Name 'OpenSSH.Server~~~~0.0.1.0'
if ($cap.State -ne 'Installed') {
Add-WindowsCapability -Online -Name 'OpenSSH.Server~~~~0.0.1.0'
}
Start-Service sshd
Set-Service -Name sshd -StartupType Automatic
Get-Service sshdจำกัดไฟร์วอลล์เฉพาะเครือข่ายจัดการ
แทนซับเน็ตตัวอย่าง 192.0.2.0/24 ด้วยเครือข่ายจัดการจริงก่อนรัน ตรวจและจำกัดกฎ OpenSSH เดิม หรือสร้างแบบจำกัดหากไม่มี คงคอนโซลไว้ ทดสอบ TCP 22 จากเครื่องอื่น พอร์ตเปิดไม่ได้ยืนยันตัวตนเซิร์ฟเวอร์
$AdminSubnet = '192.0.2.0/24'
$rule = Get-NetFirewallRule -Name 'OpenSSH-Server-In-TCP' -ErrorAction SilentlyContinue
if ($rule) {
$rule | Set-NetFirewallRule -Enabled True -RemoteAddress $AdminSubnet
} else {
New-NetFirewallRule -Name 'OpenSSH-Server-In-TCP' -DisplayName 'OpenSSH Server' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22 -RemoteAddress $AdminSubnet
}
Get-NetFirewallRule -Name 'OpenSSH-Server-In-TCP' | Get-NetFirewallAddressFilter
Test-NetConnection -ComputerName windows-server.example -Port 22ตรวจตัวตนและบัญชี
เทียบลายนิ้วมือจากคอนโซลกับข้อความไคลเอนต์ ใช้ชื่อบัญชี Windows ผู้ดูแลใช้ %ProgramData%/ssh/administrators_authorized_keys พร้อม ACL พิเศษ บัญชีอื่นโดยทั่วไปใช้ .ssh/authorized_keys ในโปรไฟล์ ทำตามเอกสาร Microsoft CH-J รองรับเครื่องมือ Windows บางส่วน ส่วน Linux Disk Manager และขั้นตอน NGINX ไม่ใช่ฟีเจอร์ Windows
ssh-keygen -lf "$env:ProgramData\ssh\ssh_host_ed25519_key.pub" -E sha256
ssh username@windows-server.example