Skip to content
VDS · 机器访问

通过 SFTP 传输文件

如何通过 WinSCP、FileZilla、内置 sftp 客户端和 macOS Finder 从服务器上传和下载文件,而不把 SFTP 与普通 FTP 混淆。

更新于 2026年8月23日

SFTP 是通过同一条 SSH 连接进行的文件传输。您无需单独搭建服务器:只要 ssh 能用,SFTP 就能用。

在图形化客户端中连接

WinSCP、FileZilla 和 Cyberduck 的设置相同:

字段值
协议SFTP(不是 FTP,也不是 FTPS)
主机“概览”标签页中的机器地址
端口22
用户root 或您自己的用户
密码“访问”标签页中的 root 密码
密钥私钥路径,如果已禁用密码登录

WinSCP 只接受 .ppk 格式的密钥——转换方法在 PuTTY 一文中有所介绍。FileZilla 也能读取普通的 OpenSSH 密钥。

端口 21 和“明文 FTP”在机器上无法使用,您也无需配置它们:FTP 会以明文发送密码。请始终选择 SFTP。

命令行客户端

Windows、macOS 和 Linux 均内置:

sftp root@203.0.113.10

在其中有简单的命令可用:

ls
cd /var/www
lcd C:\work
put index.html
put -r ./site
get /var/log/nginx/error.log
bye

put 将文件发送到机器,get 将文件拉取到您的电脑,而以 l 开头的命令(lcd、lls)则操作您自己的电脑。

如果您已配置 ~/.ssh/config 文件,那么 sftp vds 就足够了。

在文件管理器中连接 macOS 和 Linux

在 Finder 中:前往 → 连接服务器 → sftp://root@203.0.113.10。在 GNOME 文件 中,在“其他位置”字段中输入地址。机器的目录会作为网络文件夹打开。

对于长期工作,将目录挂载为本地目录更为方便:

sshfs root@203.0.113.10:/var/www /mnt/vds

文件放在哪里

内容位置
网站/var/www/<domain>
应用程序或机器人/opt/<name>
个人文件用户的主目录
临时文件/tmp(重启时清空)

上传后,通常需要设置所有者,否则 Web 服务器会收到 403:

chown -R www-data:www-data /var/www/example.com
chmod -R 755 /var/www/example.com

常见错误

现象原因
写入时出现 Permission denied目录属于其他用户,而您没有以 root 身份登录
客户端无法连接,但 SSH 正常设置中选择了 FTP 而不是 SFTP,或者端口是 21
上传成功,但网站看不到文件目录错误,或者未设置所有者
大文件传输中断在客户端中启用 keepalive;对于大文件上传请使用 rsync——它可以断点续传
俄语文件名乱码在客户端设置中启用 UTF-8 编码

何时 SFTP 不是最佳选择

对于数百个小文件和重复部署,rsync 更快:它只传输更改的部分。对于单个文件,scp 更简单。这两条命令都在 scp 和 rsync 一文中有所介绍。