SFTP(SSH文件传输协议)是一种安全文件传输协议,用于通过加密的SSH传输访问,管理和传输文件。

与传统的FTP协议相比,SFTP提供了FTP的所有功能,并且更易于配置。

scp command仅允许文件传输的sftp命令不同,该命令允许您对远程文件执行一系列操作并恢复文件传输。

在本教程中,我们将向您展示如何使用Linux sftp命令。

在你开始之前

为了能够通过SFTP传输和管理文件,您必须具有远程系统的写入权限

传输大文件时,建议在屏幕tmux会话中运行sftp命令

运行sftp命令的目录是本地工作目录

建立SFTP连接

SFTP架构是客户端 - 服务器模型架构。它是SSH的子系统,支持所有SSH身份验证机制

虽然默认设置传统密码验证并且更易于使用,但如果您经常通过SSH / SFTP连接到服务器,建议创建SSH密钥并设置无密码SFTP登录

要打开与远程系统的SFTP连接,请使用sftp命令,后跟远程服务器用户名和IP地址或域名:

sftp remote_username@server_ip_or_hostname

如果您使用的是密码验证,系统将提示您输入用户密码。连接后,远程服务器将显示确认消息和sftp>提示。

Connected to remote_username@server_ip_or_hostname.
sftp>

如果SSH服务器未在默认端口22上侦听,请使用oPort指定备用端口的选项:

sftp -oPort=custom_port remote_username@server_ip_or_hostname

SFTP命令

大多数SFTP命令与您在Linux shell提示符中使用的命令类似或相同。

您可以通过键入help?获取所有可用SFTP命令的列表

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提示还提供用于本地导航,信息和文件管理的命令

例如,要打印本地工作目录,您可以键入:

cd lpwd
Local working directory: /home/local_username

使用SFTP传输文件

SFTP允许您在两台计算机之间安全地传输文件。

在大多数情况下,您将使用桌面SFTP客户端(如WinSCPFileZilla)连接到远程服务器并下载或上载文件。但是,sftp当您在没有GUI的服务器上工作并且想要传输文件或希望对远程文件执行其他操作时,该命令很有用

使用SFTP命令下载文件

登录到远程服务器后,当前工作目录是远程用户主目录

使用sftp命令下载文件时,文件将下载到您键入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

如果要使用其他名称保存下载的文件,请在以后指定名称:

get filename.zip local_filename.zip

要从远程系统下载目录,请使用递归-r选项:

get -r remote_directory

如果文件传输失败或中断,您可以使用reget命令恢复它。语法与语法reget相同get

reget filename.zip

使用SFTP命令上载文件

要将文件从本地目录上载到远程FTP服务器,请使用以下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的一些示例:

显示远程系统磁盘使用情况的统计信息:

df
        Size         Used        Avail       (root)    %Capacity
    20616252      1548776     18002580     19067476           7%

在远程服务器上创建一个新目录:

mkdir directory_name

重命名远程服务器上的文件:

rename file_name new_file_name

删除远程服务器上的文件:

rm file_name

删除远程服务器上的目录:

rmdir directory_name

更改远程系统上文件的权限:

chmod 644 file_name

更改远程系统上文件的所有者:

chown user_id file_name

您必须为chownchgrp命令提供用户标识。

使用以下命令更改远程文件的组所有者:

chgrp group_id file_name

完成工作后,您可以通过键入bye或关闭连接quit

在本教程中,您学习了如何使用sftp命令下载文件并将文件上载到远程SFTP服务器。

如果你喜欢我们的内容可以选择在下方二维码中捐赠我们,或者点击广告予以支持,感谢你的支持