宝塔服务器默认支持sftp,无需额外安装;sftp是openssh内置子系统,只要sshd运行即可使用,端口为22(或自定义ssh端口),凭证为系统用户账号密码或密钥。

宝塔服务器默认就支持 SFTP,不用额外安装服务
宝塔面板基于 Linux 系统部署,而 OpenSSH 服务在绝大多数发行版中默认已启用,sftp 是其内置子系统,只要 sshd 正常运行,SFTP 就可用。你不需要在宝塔里找“SFTP 插件”或安装额外组件。
常见误区是以为要像 FTP 那样单独开启 Pure-FTPd 才能用 SFTP——其实完全无关。SFTP 走的是 SSH 通道,端口就是 22(或你改过的 SSH 端口),凭证就是系统用户账号密码(或密钥)。
- 确认 SSH 服务状态:在宝塔「软件管理」里查看
OpenSSH是否显示“正在运行”;若没装,需先通过命令行安装(如apt install openssh-server或yum install openssh-server) - 默认可用账户:宝塔安装时创建的
www用户通常无密码,需手动设密才能用于 SFTP 登录 - root 用户默认允许 SFTP,但出于安全,不建议直接用 root 连接;应新建普通用户并授权
给 www 用户设置密码并限制 SFTP 根目录
宝塔默认的 www 用户没有密码,无法直接用于 SFTP 登录。必须显式设置密码,并通过 SSH 配置将其限制在指定目录,否则会拥有整个系统的访问权限。
操作分两步:设密码 + 修改 /etc/ssh/sshd_config 强制 chroot:
- 执行
passwd www,输入两次新密码(建议强密码,避免空格和特殊字符) - 编辑
/etc/ssh/sshd_config,找到Subsystem sftp行,注释掉原行(加#),再追加:Subsystem sftp internal-sftp
- 在配置文件末尾添加:
Match User www<br> ChrootDirectory /www/wwwroot<br> ForceCommand internal-sftp<br> AllowTcpForwarding no<br> X11Forwarding no
- 注意:
ChrootDirectory指定的路径(如/www/wwwroot)必须属主为root、权限为755,否则 sshd 启动失败;其子目录(如/www/wwwroot/my-site)才可归属www并开放写入 - 保存后执行
systemctl restart sshd生效
SFTP 连接失败的三个高频原因
不是账号错、不是密码错,而是底层配置或网络策略卡住。遇到 “Connection refused” 或 “Authentication failed” 先查这些:
-
sshd未监听非默认端口:如果你改过 SSH 端口(比如改成2222),SFTP 客户端必须填对应port值,VS Code 的sftp.json里"port": 2222不可省略 - 云服务商安全组没放行 SSH 端口:阿里云/腾讯云控制台的安全组规则里,必须有入站规则放行你实际使用的 SSH 端口(如
22或2222),协议选TCP,源地址建议限制为你的办公 IP 而非0.0.0.0/0 - 客户端误配 protocol:VS Code 的
sftp.json中"protocol": "ftp"是典型错误,SFTP 必须是"protocol": "sftp";填成ftp会导致连接被拒绝且无明确提示
VS Code 使用 SFTP 插件同步文件的实际配置要点
插件本身简单,但配置项稍有偏差就会连不上或上传失败。重点盯住这四个字段:
-
"host":填服务器公网 IP,不是域名(除非 DNS 解析稳定且本地能通) -
"port":严格匹配你 SSH 实际监听的端口,宝塔默认是22,但很多人改过,务必确认 -
"remotePath":这是你登录后看到的“根路径”,必须与ChrootDirectory一致(如"/"),若你限制了www用户到/www/wwwroot,这里就填"/",不是"/www/wwwroot"(chroot 后它就是 /) -
"uploadOnSave":设为true可自动上传,但首次使用建议先关掉,手动右键上传一次验证路径是否正确,避免误覆盖
chroot 机制下,remotePath 的语义容易混淆——它不是物理绝对路径,而是 chroot jail 内的相对起点。这点不厘清,90% 的“上传成功但文件找不到”问题都出在这里。











