OpenGL 3D

什么是 SFTP

SFTP 代表 Secure File Transfer Protocol. S有时也代表 SSH(或 Secure Shell),它是文件传输服务运行的安全加密隧道。

SFTP 是一种通过远程系统安全传输文件的流行方法。该sftp命令通常是 OpenSSH 包的一部分。它被设计为 SSH v2.0 的扩展,以增强 安全文件传输功能。该sftp命令行界面被设计为类似于ftp命令。

FTP和SFTP有什么区别

与传统的 FTP 协议相比,SFTP 提供了 FTP 的所有功能,但更安全,更易于配置。与 FTP 不同,SFTP 使用单个数据和控制通道。在两台计算机之间共享信息之前,SFTP 会验证客户端的身份,一旦建立安全连接,它就会发送加密信息。

SCP和SFTP有什么区别

SCP 只能用于传输文件,并且它是非交互的。SFTP 更复杂,允许交互式命令执行诸如创建目录、删除目录和文件等操作。

如何使用 SFTP 命令

你可以连接到客户端提到的 SFTP,例如 FileZilla,否则可以使用基本命令在命令行界面中使用它。

SFTP 还提供了多种方法来完成连接的身份验证,例如用户名和密码、SSH 密钥或这些的组合。

SFTP 默认使用端口 22,这是 SSH 的默认端口。它基本上是 SSH 的一个子系统,支持所有 SSH 认证机制。

建立 SFTP 连接

你可以在运行 Linux 的系统上或从 macOS 终端使用命令行 SFTP。


sftp [REMOTE_USER]@[REMOTE_SERVER]

例如,如果你的用户名是 test,要连接到你在主机上的帐户 kad8.com,请输入:


sftp test/@kad8.com

出现提示时输入你的密码。如果一切按预期进行,你将看到 sftp 提示,你可以开始与远程服务器交互。


Connected to kad8.com.

SFTP 到 22 以外的端口

如果远程 SSH 服务器使用自定义 SSH 端口(不是默认端口 22),请使用该-P选项指定 SFTP 端口。


sftp -P 2222 test/@kad8.com

有用的 SFTP 命令

如果你需要快速备忘单,这里是所有可用 SFTP 命令的列表。只需输入help 或 ? 命令,你就可以自己找到此列表 。

命令 功能
cd 更改远程主机上的目录。
chmod 更改远程主机上文件的权限。
chown 更改远程主机上文件的所有者。
exit 关闭与远程主机的连接,并退出 SFTP。
get 将文件从远程主机复制到本地计算机。
lcd 更改本地计算机上的目录。
lls 列出本地计算机上当前目录的内容。
lmkdir 在本地计算机上创建一个目录。
lpwd 显示本地计算机上的当前工作目录。
ls 列出远程主机上当前目录的内容。
mkdir 在远程主机上创建一个目录。
put 将文件从本地计算机复制到远程主机。
pwd 显示远程主机上的当前工作目录。
rename 重命名远程主机上的文件。
rm 删除远程主机上的文件。
rmdir 删除远程主机上的目录,但该目录必须为空。

使用 SFTP 命令传输文件

SFTP 允许你在两台机器之间安全地传输文件。

To download a single file从远程服务器,使用 get 命令:


sftp> get website-logo.jpg

Fetching /home/kad8/website-logo.jpg
/home/kad8/website-logo.jpg 100% 11KB 17KB/s 00:00

To download a directory从远程系统,使用-r (递归)选项。


sftp> get -r images/

To upload a file从本地机器到远程SFTP服务器,使用 put 命令:


sftp> put website-logo.jpg

Uploading website-logo.jpg to /home/kad8/website-logo.jpg
dogtoman-tmp-logo.png 100% 11KB 24KB/s 00:00

To upload a local directory 到远程 SFTP 服务器:


sftp> put -r images/

当然,你可以试验上表中显示的任何 SFTP 命令。

完成工作后,键入 关闭连接exit。