虚拟主机域名注册-常见问题服务器知识 → 服务器问题

Windows如何搭建SFTP服务器

  安装组件 → 配置服务 → 创建用户 → 设置目录权限 → 启用防火墙 → 测试连接 → 安全加固

  一、服务器搭建,使用PowerShell与OenSSH

  用管理员打开PowerShell

  1. 安装 OpenSSH 组件

  Add-WindowsCapability -Online -Name OpenSSH.Server* # 安装组件:ml-citation{ref="1,4" data="citationList"}

  Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH.Server*' # 检查是否已安装 OpenSSH 服务器。若 State 显示 NotPresent,则需安装 OpenSSH 服务器

  Start-Service sshd # 启动服务

  Set-Service -Name sshd -StartupType 'Automatic' # 设置开机自启

  2.配置防火墙‌。允许 22 端口通信:

  New-NetFirewallRule -Name "OpenSSH-Server" -DisplayName "OpenSSH Server" -Direction Inbound -Protocol TCP -LocalPort 22 -Action Allow:ml-citation{ref="1,8" data="citationList"}

  或者打开Windows Defender防火墙:

  在左侧导航栏中,选择“高级设置”。

  在右侧面板中,选择“Inbound Rules”。

  在操作菜单中,选择“New Rule”。

  选择“端口”选项,并点击“下一步”。

  选择“特定本地端口”,输入“22”,并点击“下一步”。

  选择“允许连接”,并点击“下一步”。

  选择“所有配置文件”,并点击“下一步”。

  输入规则名称,并点击“完成”

  3.创建专用用户

  New-LocalUser -Name "sftpuser" -Password (ConvertTo-SecureString "YourPassword" -AsPlainText -Force)

  Add-LocalGroupMember -Group "Users" -Member "sftpuser" # 默认加入 Users 组:ml-citation{ref="4" data="citationList"}

  或者:

  #创建SFTP用户组

  New-LocalGroup sftpusers

  创建SFTP用户,并将其添加到 sftpusers 组

  New-LocalUser -Name <用户名> -FullName <全名> -Description <描述>

  Set-LocalUser -Name <用户名> -Password (ConvertTo-SecureString -AsPlainText "<密码>" -Force)

  4.配置 SFTP 根目录与权限。

  Subsystem sftp internal-sftp

  Match Group sftpusers

  ChrootDirectory %h

  ForceCommand internal-sftp

  AllowTcpForwarding no

  或者:

  编辑配置文件 C:\ProgramData\ssh\sshd_config,添加以下内容:

  Subsystem sftp internal-sftp

  Match User sftpuser

  ChrootDirectory D:\sftp_root # 限制用户只能访问该目录

  ForceCommand internal-sftp # 禁止 shell 访问

  AllowTcpForwarding no:ml-citation{ref="1,4" data="citationList"}

  创建目录并设置权限:

  目录 D:\sftp_root 属主设为 Administrators,权限为 755

  子目录(如 D:\sftp_root\userdata)属主设为 sftpuser,权限为 755

  5.重启 SSH 服务

  Restart-Service sshd # 使配置生效:ml-citation{ref="1,4" data="citationList"}

  6.SFTP命令行测试:

  sftp -P 22 sftpuser@服务器IP # 输入密码后尝试上传/下载文件

  7.安全强化建议

  ‌ 密钥认证替代密码‌

  生成密钥对:ssh-keygen -t ed25519

  将公钥内容追加至 C:\Users\sftpuser\.ssh\authorized_keys

  ‌ 限制用户权限‌

  禁止 Shell 访问(通过 ForceCommand internal-sftp 实现)

  ‌定期审计日志‌

  查看日志路径:C:\ProgramData\ssh\logs 或 FileZilla Server 日志界面

  二、通过Windows的可选功能与OpenSSH或者freeSSHd

  Windows 10和Windows Server 2019开始,Microsoft提供了OpenSSH的Windows版本,可以直接通过系统的“可选功能”来安装。

  freeSSHd是一个第三方的SSH和SFTP服务器软件,适用于Windows平台。

  1.OpenSSH安装步骤:

  在Windows 10中,进入“设置” > “应用” > “可选功能” > “添加功能”。

  查找“OpenSSH服务器”功能,选择它,然后点击“安装”。

  安装完成后,OpenSSH的二进制文件将被安装到%WINDIR%\\System32\\OpenSSH目录。

  配置文件(sshd_config)和主机密钥将被安装到%ProgramData%\\ssh目录(在服务器第一次启动后)。

  2. OpenSSH配置和启动服务:

  允许Windows防火墙接受SSH服务器的传入连接。

  通过“服务”管理工具启动OpenSSH SSH服务器服务,并设置为自动启动。

  设置SSH公钥认证:

  在Windows账户的个人资料文件夹中创建.ssh文件夹,并设置适当的访问控制列表(ACL)权限。

  将公钥文件放入.ssh文件夹中的authorized_keys文件。

  1. freeSSHd安装步骤:

  从官方网站下载freeSSHd软件。

  运行安装程序并按照提示完成安装。

  安装完成后,可能会提示是否启动后台服务,选择“是”。

  2.reeSSHd配置SFTP服务:

  启动freeSSHd软件,确保以管理员权限运行。

  在软件界面中启动SFTP服务。

  添加用户并设置密码验证。

  配置SFTP的根目录和用户目录权限。

  应用并保存所有配置。

  3.reeSSHd测试连接:

  使用SFTP客户端软件(如FileZilla)配置本地SFTP站点。

  输入服务器IP、端口号、用户名和密码进行连接测试。

  通过端口映射实现公网远程访问

  如果需要通过公网远程访问SFTP服务器,可以使用端口映射工具(如cpolar)来实现内网穿透。

  4.reeSSHd设置步骤:

  在cpolar官网注册账号并下载安装cpolar内网穿透工具。

  登录cpolar web UI管理界面并创建SFTP隧道。

  获取公网地址和端口号。

  使用SFTP客户端连接公网地址进行测试。




免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:bkook@qq.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
【 双击滚屏 】 【 推荐朋友 】 【 收藏 】 【 打印 】 【 关闭 】 【 字体: 】 
上一篇:宝塔面板安装及部署指南
下一篇:Ubuntu详细介绍
  >> 相关文章
没有相关文章。