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