檢查並啟用服務
在目標伺服器以系統管理員執行 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 帳戶名稱連線。管理員使用有特殊 ACL 的 %ProgramData%/ssh/administrators_authorized_keys,其他帳戶通常用個人設定檔的 .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