You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows Server中SFTP账号无法访问断开连接的网络驱动器F:/FTP的配置排查请求

Windows Server中SFTP账号无法访问断开连接的网络驱动器F:/FTP的配置排查请求

老兄,你遇到的这个问题其实是Windows下OpenSSH服务和网络驱动器挂载机制的典型冲突,我来帮你捋捋原因和可行的解决方案:

问题根源先搞清楚

你提到的“断开连接的网络驱动器”(也就是映射的网络盘F:),默认是用户会话级别的挂载——意思是只有登录这个用户的时候,系统才会加载这个映射盘。但OpenSSH服务是用**本地系统账户(Local System)**运行的,这个账户根本看不到你在用户会话里挂载的F盘,自然就没办法让SFTP用户访问到它。

不用动驱动器属性的解决方案

下面几个方法都不用修改网络驱动器本身的属性,你可以试试:

1. 把ChrootDirectory改成UNC路径直接访问

既然服务看不到映射的F盘,那我们直接用网络共享的UNC路径替代驱动器号,比如你的网络共享路径是\\fileserver\ftp_share,那把sshd_config里的配置改成:

Match Group "SFTP Users"
    ChrootDirectory \\fileserver\ftp_share
    ForceCommand internal-sftp
    # 其他保持原配置不变

注意:要给OpenSSH服务的运行账户(默认是Local System)分配这个UNC路径的读取/写入权限,不然服务访问不了这个共享。

2. 给系统账户挂载永久的网络驱动器

如果一定要用F:这个驱动器号,可以给Local System账户挂载一个系统级别的永久映射盘:

  • 打开命令提示符(以管理员身份),运行这个命令:
    net use F: \\fileserver\ftp_share /user:domain\admin_user password /persistent:yes
    
    这里的domain\admin_user要是有这个共享访问权限的账户,password是对应的密码。
  • 重启OpenSSH服务,之后服务就能识别到F:盘了,再把ChrootDirectory改回F:/FTP就行。

3. 调整OpenSSH服务的运行账户

把OpenSSH服务改成用有权访问这个网络驱动器的域账户/本地账户运行:

  • 打开服务管理器,找到OpenSSH SSH Server服务,右键属性→登录选项卡;
  • 选择“此账户”,输入有权访问F盘共享的账户信息;
  • 重启服务,这样服务就能访问到这个映射盘了。

额外注意点

  • 不管用哪种方法,都要确保SFTP Users组对目标目录(不管是UNC路径还是F:/FTP)有正确的权限:读取、写入、列出文件夹内容这些权限都得配上;
  • 修改sshd_config之后一定要重启OpenSSH服务,不然配置不会生效;
  • 如果用UNC路径,要确保网络共享的稳定性,不然SFTP连接可能会出问题。

备注:内容来源于stack exchange,提问作者Snowprincez Coffee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.23 12:12:43