什么是 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 连接
代码语言:javascript复制你可以在运行 Linux 的系统上或从 macOS 终端使用命令行 SFTP。
sftp [REMOTE_USER]@[REMOTE_SERVER]
代码语言:javascript复制例如,如果你的用户名是
rumenz
,要连接到你在主机上的帐户rumenz.com
,请输入:
sftp rumenz@rumenz.com
代码语言:javascript复制出现提示时输入你的密码。如果一切按预期进行,你将看到
sftp
提示,你可以开始与远程服务器交互。
Connected to rumenz.com.
sftp>
SFTP 到 22 以外的端口
代码语言:javascript复制如果远程 SSH 服务器使用自定义 SSH 端口(不是默认端口 22),请使用该
-P
选项指定 SFTP 端口。
sftp -P 2222 rumenz@rumenz.com
有用的 SFTP 命令
代码语言:javascript复制如果你需要快速备忘单,这里是所有可用 SFTP 命令的列表。只需输入
help
或?
命令,你就可以自己找到此列表 。
更改远程主机上的目录。
使用 SFTP 命令传输文件
代码语言:javascript复制SFTP 允许你在两台机器之间安全地传输文件。
To download a single file
从远程服务器,使用get
命令:
sftp> get website-logo.jpg
代码语言:javascript复制Fetching /home/rumenz/website-logo.jpg
/home/rumenz/website-logo.jpg 100% 11KB 17KB/s 00:00
To download a directory
从远程系统,使用-r
(递归)选项。
sftp> get -r images/
代码语言:javascript复制
To upload a file
从本地机器到远程SFTP服务器,使用put
命令:
sftp> put website-logo.jpg
代码语言:javascript复制Uploading website-logo.jpg to /home/rumenz/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
。