Windows 10 1809+、Win11及Server 2019+可原生启用OpenSSH Server搭建SFTP服务:需管理员权限安装OpenSSH服务器组件,设置sshd服务为自动启动并运行,配置防火墙放行TCP 22端口,创建低权限专用用户并限制其仅能SFTP访问,最后验证连接成功。

在Windows上启用内置OpenSSH Server作为SFTP服务器
Windows 10 1809及以后版本、Windows 11和Windows Server 2019+已原生集成OpenSSH服务端组件,无需额外安装第三方软件即可快速搭建加密SFTP服务。这一步必须以管理员权限操作,否则服务无法注册。
打开「设置」→「系统」→「可选功能」→「添加功能」,在搜索框中输入【OpenSSH 服务器】,勾选后点击「安装」。安装过程约需30秒,无进度条,完成后需手动重启终端才能识别新服务。
安装完毕后,按 Win+X 键,选择「终端(管理员)」,依次执行以下两条命令:
Set-Service -Name sshd -StartupType 'Automatic'
Start-Service sshd
执行后无任何回显是正常现象。紧接着运行 netstat -ano | findstr ":22",若看到包含 :22 的监听行且 PID 对应 sshd 进程,则说明服务已在22端口就绪。若无输出,请检查是否漏掉管理员权限或防火墙拦截。
创建专用SFTP用户并限制登录方式
直接使用管理员账户开放SFTP存在严重风险——该账户拥有系统全部权限,一旦密码泄露或被爆破,攻击者可远程执行任意命令。必须新建低权限本地账户专用于文件传输。
在管理员终端中执行:
net user sftpuser P@ssw0rd123 /add
接着将该用户加入 Users 组而非 Administrators 组:
net localgroup Users sftpuser /add
师生共创生态系统对接指南。当用户需要对接大学政策、平台资源、投资机构、产业伙伴等外部资源支持时使用。触发词:师生共创生态、大学支持、平台赋能、投资对接、产业合作、政策支持、清华x-lab、孵化器、创业资源
【关键限制】:默认情况下,该用户仍可通过RDP或交互式登录进入桌面。为彻底锁定仅允许SFTP,需编辑 C:\ProgramData\ssh\sshd_config 文件,在末尾新增一行:
Match User sftpuser
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
保存后必须重启服务:Restart-Service sshd。不重启则配置不生效,用户仍能获得完整shell权限。
放行防火墙并验证连接可用性
Windows防火墙默认会阻止外部对22端口的入站连接,即使sshd服务运行正常,客户端也会超时失败。
在管理员终端中执行:
New-NetFirewallRule -Name "OpenSSH-SFTP-Only" -DisplayName "SFTP File Transfer Only" -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
这条规则只放行TCP 22端口,不开放其他SSH功能(如远程命令执行),符合最小权限原则。注意不要勾选“允许此规则适用于所有配置文件”,除非你明确需要公网访问;内网使用建议仅启用“专用网络”。
从另一台设备(如Debian或Mac)执行测试命令:
sftp sftpuser@192.168.1.100
首次连接会提示确认主机密钥指纹,输入 yes 后输入密码。成功进入 sftp> 提示符即表示SFTP通道已建立。此时尝试执行 ls 命令应能列出用户主目录内容,但无法执行 system 或 cd / 等越权操作。

















