SFTP(SSH 文件传输协议)是一种安全文件协议,用于通过加密的 SSH 传输访问、管理和传输文件。
与传统的相比FTPSFTP 提供 FTP 的所有功能,但更安全且更易于配置。
Unlike SCPSFTP 仅支持文件传输,但允许您对远程文件执行一系列操作并恢复文件传输。
在本教程中,我们将向您展示如何使用 Linuxsftp
命令。
在你开始之前#
为了能够通过 SFTP 传输文件,您必须拥有远程系统的写入权限。
传输大文件时,建议运行sftp
里面的命令screen
or tmux会议。
运行该程序的目录sftp
命令是本地工作目录。
不要将 SFTP 与 FTPS 混淆。两种协议都有相同的目的。然而,FTPS 代表 FTP Secure,它是标准 FTP 协议的扩展,支持 TLS。
建立 SFTP 连接#
SFTP 在客户端-服务器模型上工作。它是SSH的一个子系统,支持所有SSH认证机制。
要打开到远程系统的 SFTP 连接,请使用sftp
命令后跟远程服务器用户名和 IP 地址或域名:
sftp remote_username@server_ip_or_hostname
如果您使用密码身份验证连接到主机,系统将提示您输入用户密码。
连接后,您将看到sftp
提示后,您就可以开始与远程服务器交互:
Connected to remote_username@server_ip_or_hostname.
sftp>
如果远程 SSH 服务器没有监听默认端口22, 使用-P
指定 SFTP 端口的选项:
sftp -P custom_port remote_username@server_ip_or_hostname
SFTP命令#
大多数 SFTP 命令与 Linux shell 命令相似或相同。
要获取所有可用 SFTP 命令的列表,请键入help
, or ?
.
help
这将输出所有可用命令的长列表,包括每个命令的简短描述:
Available commands:
bye Quit sftp
cd path Change remote directory to 'path'
...
...
version Show SFTP version
!command Execute 'command' in local shell
! Escape to local shell
? Synonym for help
使用 SFTP 导航#
当您登录到远程服务器时,您的当前工作目录是远程用户主目录。您可以通过输入以下内容来检查:
pwd
Remote working directory: /home/remote_username
要列出文件和目录,请使用ls
命令:
ls
要导航到另一个目录,请使用cd
命令。例如,要切换到/tmp
您将键入的目录:
cd /tmp
上述命令用于在远程位置进行导航和工作。
SFTP shell 还提供用于本地导航、信息和文件管理的命令。本地命令以字母为前缀l
.
例如,要打印本地工作目录,您可以键入:
cd lpwd
Local working directory: /home/local_username
使用 SFTP 传输文件#
SFTP 允许您在两台计算机之间安全地传输文件。
如果您在台式计算机上工作,则可以使用 GUI SFTP 客户端,例如WinSCP
or 文件齐拉连接到远程服务器并下载或上传文件。
The sftp
当您在没有 GUI 的服务器上工作并且想要传输文件或对远程文件执行其他操作时,该命令非常有用。
使用SFTP命令下载文件#
要从远程服务器下载单个文件,请使用get
命令:
get filename.zip
输出应如下所示:
Fetching /home/remote_username/filename.zip to filename.zip
/home/remote_username/filename.zip 100% 24MB 1.8MB/s 00:13
下载文件时使用sftp
,文件将下载到您键入的目录中sftp
命令。
如果您想使用不同的名称保存下载的文件,请将新名称指定为第二个参数:
get filename.zip local_filename.zip
要从远程系统下载目录,请使用递归-r
option:
get -r remote_directory
如果文件传输失败或中断,您可以使用reget
命令。
语法为reget
与语法相同get
:
reget filename.zip
使用SFTP命令上传文件#
要将文件从本地计算机上传到远程 SFTP 服务器,请使用put
命令:
put filename.zip
输出应如下所示:
Uploading filename.zip to /home/remote_username/filename.zip
filename.zip 100% 12MB 1.7MB/s 00:06
如果要上传的文件不在当前工作目录中,请使用该文件的绝对路径。
当与put
您可以使用与get
命令。
要上传本地目录,您可以输入:
put -r locale_directory
要恢复中断的上传:
reput filename.zip
使用 SFTP 进行文件操作#
通常,要在远程服务器上执行任务,您可以通过 SSH 连接到它并使用 shell 终端完成工作。但是,在某些情况下,用户可能只能通过 SFTP 访问远程服务器。
SFTP 允许您执行一些基本的文件操作命令。以下是如何使用 SFTP shell 的一些示例:
完成工作后,输入以下命令关闭连接bye
or quit
.
结论#
在本教程中,我们向您展示了如何使用sftp
命令下载文件并将其上传到远程 SFTP 服务器。
您可能还想设置一个基于 SSH 密钥的身份验证无需输入密码即可连接到您的 Linux 服务器。如果您经常连接到相同的系统,您可以通过在SSH 配置文件
.
如果您有任何问题或反馈,请随时发表评论。