目录
← 全部文章

Windows Server 2025 安装配置 OpenSSH 实现安全远程管理

Windows Server 2025 预装 OpenSSH,本文完整演示从检查、安装、启动服务、防火墙放行、修改默认端口到配置密钥认证的 SSH 安全远程管理流程。

Windows Server 2025 预装了 SSH,让管理员能更安全地远程管理服务器。这对从 macOS 或 Linux 机器访问服务器、以及访问不属于 Active Directory 域的 Windows 计算机尤其有用——这类场景下手动配置 PowerShell 远程(WinRM)比较麻烦。默认情况下 Windows Server 2025 的 SSH 使用密码认证,建议按本文后续说明改为公钥认证。

一、检查 OpenSSH 是否已安装

在「设置」→「可选功能」中搜索 SSH,可以看到 OpenSSH 客户端 和 OpenSSH 服务器 两个功能。

Windows Server 2025 设置中的 OpenSSH 可选功能

也可以用 PowerShell 检查状态:

Get-WindowsCapability -Online -Name OpenSSH*

使用 PowerShell 检查 OpenSSH 状态

二、安装 OpenSSH

如果 SSH 被卸载,可用以下命令重新安装。

安装 OpenSSH 服务器:

Add-WindowsCapability -Online -Name OpenSSH.Server

安装 OpenSSH 客户端:

Add-WindowsCapability -Online -Name OpenSSH.Client

三、卸载 OpenSSH

出于安全考虑需要移除 SSH 时:

Remove-WindowsCapability -Online -Name OpenSSH.Server
Remove-WindowsCapability -Online -Name OpenSSH.Client

四、启动 SSH 服务

OpenSSH 服务器默认禁用,使用前需要启动。为安全起见,建议只在需要时启动。

通过服务管理工具启动并设置为「自动」:

启动 SSH 服务并设为自动启动

PowerShell 方式启动服务:

Start-Service sshd

设置为开机自动启动:

Set-Service -Name sshd -StartupType Automatic

验证服务状态:

Get-Service sshd

PowerShell 启动并验证 SSH 服务

五、在 Windows 防火墙中放行 SSH

安装 OpenSSH 后通常会自动启用防火墙规则。如果连接被阻止,用以下命令放行入站 SSH:

New-NetFirewallRule -Name sshd -DisplayName "Allow SSH" -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22

也可以运行 wf.msc 通过图形界面检查入站规则。

Windows 防火墙放行入站 SSH 连接

六、使用 SSH 连接服务器

服务启动后即可连接,例如:

ssh Administrator@10.211.55.15

从 macOS、Linux 还是 Windows 连接,方式都一样。

本地执行 SSH 连接命令

首次连接时,系统会提示接受服务器指纹。指纹是服务器公钥的唯一标识符,用于验证服务器身份、防止中间人攻击。

首次连接接受服务器指纹

七、修改 OpenSSH 默认端口

攻击者经常扫描 22 号端口,修改默认端口能减少暴露面。

用具备提升权限的编辑器打开 C:\ProgramData\ssh\sshd_config,修改端口配置。

在 sshd_config 中修改 SSH 端口

修改后重启 SSH 服务:

Restart-Service sshd

同时更新防火墙规则。先删除旧的端口 22 规则:

Remove-NetFirewallRule -Name "OpenSSH-Server-In-TCP"

再为新的端口创建规则:

New-NetFirewallRule -DisplayName "Allow Port 43210" -Direction Inbound -Protocol TCP -LocalPort 43210 -Action Allow

之后用新端口连接:

ssh Administrator@10.211.55.15 -p 43210

使用新端口连接 SSH

八、配置基于密钥的认证

密钥认证使用一对加密密钥验证用户身份,不传输密码,比密码认证更安全,能有效抵御暴力破解。

在本地计算机生成密钥对:

ssh-keygen -t rsa -b 4096

生成 RSA 密钥对

把公钥复制到服务器。先建立 SSH 会话,然后创建公钥文件 administrators_authorized_keys(注意:这里是文件,不是目录),并用 icacls 设置仅 SYSTEM 与 Administrators 组可访问:

New-Item -ItemType File -Path C:\ProgramData\ssh\administrators_authorized_keys
icacls C:\ProgramData\ssh\administrators_authorized_keys /inheritance:r /grant "SYSTEM:(A)" /grant "Administrators:(A)"

若 ACL 设置不正确,公钥认证不会生效。然后将公钥文件复制到服务器:

scp -P 43210 key.pub Administrator@10.211.55.15:/ProgramData/ssh/administrators_authorized_keys

要强制执行密钥认证,请编辑 C:\ProgramData\ssh\sshd_config,把 PasswordAuthentication 设为 no,然后重启 SSH 服务:

Restart-Service sshd

之后用私钥连接,无需输入密码:

ssh -i ~/.ssh/id_rsa Administrator@10.211.55.15 -p 43210

小结

Windows Server 2025 对 OpenSSH 的原生支持简化了远程管理流程,提供与 Linux 系统管理员相似的能力。完成服务启动、防火墙放行、改端口和密钥认证这几步后,就能获得更可靠的 SSH 远程管理体验。

常见问题

问:Windows Server 2025 自带 SSH 吗? 答:自带 OpenSSH 客户端与服务器,启用 sshd 服务并放行防火墙即可使用。

问:SSH 默认端口是多少?怎么修改? 答:默认 22。修改 C:\ProgramData\ssh\sshd_config 的 Port,重启 sshd 并同步更新防火墙规则即可。

问:公钥认证的 authorized_keys 文件在哪? 答:管理员用户是 C:\ProgramData\ssh\administrators_authorized_keys(这是文件,并需仅 SYSTEM 与 Administrators 组可访问),普通用户是 ~/.ssh/authorized_keys。

问:如何强制使用密钥认证? 答:在 sshd_config 中把 PasswordAuthentication 设为 no,然后重启 sshd 服务。

问:防火墙放行 SSH 的命令是什么? 答:New-NetFirewallRule -Direction Inbound -Protocol TCP -LocalPort <端口> -Action Allow。

↑ 回到顶部