概述
本文将逐步介绍如何在 Windows Server 上安装 OpenSSH Server,并完成密钥认证、服务自动启动、防火墙放行等安全配置。
变量说明
| 变量名 | 示例值 | 说明 |
|---|---|---|
<<SERVER>> |
192.168.1.10 |
目标主机名或 IP 地址 |
步骤 1:安装 OpenSSH 服务器
以管理员权限启动 PowerShell,执行以下命令:
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
步骤 2:启动并设置自动启动
安装完成后,启动 SSH 服务 (sshd),并将其设为开机自启:
# 启动服务
Start-Service sshd
# 设置为自动启动
Set-Service -Name sshd -StartupType Automatic
💡 提示
首次启动sshd服务时,系统会自动生成默认配置文件与主机密钥,包括:
%ProgramData%\ssh\sshd_config(配置文件)%ProgramData%\ssh\ssh_host_*(主机密钥)如需修改配置,请在这些文件生成后再进行编辑。
步骤 3:防火墙放行
允许 SSH 通信(默认端口 22):
New-NetFirewallRule -Name "OpenSSH-Server" -DisplayName "OpenSSH Server (sshd)" `
-Enabled True -Direction Inbound -Protocol TCP -LocalPort 22 -Action Allow
步骤 4:配置密钥认证(推荐)
-
将公钥注册至服务器:
- 普通用户:存放于用户目录下
.ssh\authorized_keys - 管理员账户:存放于
%ProgramData%\ssh\administrators_authorized_keys
- 普通用户:存放于用户目录下
-
编辑服务器端配置文件
%ProgramData%\ssh\sshd_config,确认以下设置:PubkeyAuthentication yes AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
步骤 5:首次连接与验证
在客户端执行以下命令连接服务器:
ssh Administrator@<<SERVER>>
首次连接会提示确认主机密钥。连接成功后,可通过 whoami 命令确认登录身份。
步骤 6:安全加固与限制
在 sshd_config 中可添加以下安全配置:
Port 2222
AllowGroups SSHAdmins
AllowUsers Administrator deployuser
PasswordAuthentication no
KbdInteractiveAuthentication no
PubkeyAuthentication yes
Port 2222
修改默认端口以降低暴力攻击风险。AllowGroups SSHAdmins
限定允许连接的用户组。AllowUsers Administrator deployuser
限定允许连接的用户。PasswordAuthentication no
禁用密码登录,仅允许密钥认证。KbdInteractiveAuthentication no
禁用交互式键盘认证。PubkeyAuthentication yes
启用公钥认证。
ℹ️ 注意
在 Windows Server 2025 及更高版本中,SSH 默认启用组访问控制。部分语言环境下的 “OpenSSH Users” 组可能无效,请自行创建SSHAdmins等安全组。
步骤 7:查看日志
使用 PowerShell 查看近期 SSH 日志:
Get-WinEvent -LogName OpenSSH/Operational `
| Where-Object { $_.TimeCreated -ge (Get-Date).AddHours(-1) } `
| Select-Object TimeCreated, Id, LevelDisplayName, Message
可用日志名称可通过以下命令确认:
wevtutil el | findstr OpenSSH
总结
通过在 Windows Server 上部署 OpenSSH 服务器,可实现与 Linux/Unix 相同的远程管理方式。结合密钥认证、防火墙与组策略设置,可构建安全、可控的远程访问环境。
