[Win服务器] Windows中SFTP服务器搭建

453 0
Honkers 2026-3-4 11:45:53 来自手机 | 显示全部楼层 |阅读模式

        在Windows操作系统上设置SFTP服务器可以通过多种方式实现,包括使用OpenSSH或第三方软件如freeSSHd。以下是在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客户端连接公网地址进行测试。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

中国红客联盟公众号

联系站长QQ:5520533

admin@chnhonker.com
Copyright © 2001-2026 Discuz Team. Powered by Discuz! X3.5 ( 粤ICP备13060014号 )|天天打卡 本站已运行