Latest News : 亮瞎双眼的那些年!

如何使用 SFTP 命令传输文件

乱弹 admin 847 views 0 comments

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

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

与仅支持文件传输的SCP不同 ,SFTP 允许您对远程文件执行一系列操作并恢复文件传输。

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

在你开始之前

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

传输大文件时,建议在screen 或tmux 会话中运行sftp命令。

运行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?.

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

当您登录到远程服务器时,您当前的工作目录 是远程用户主目录。您可以通过键入以下内容进行检查:

pwd
Remote working directory: /home/remote_username

要列出文件和目录,请使用以下ls命令:

ls

要导航到另一个目录,请使用该cd命令。例如,要切换到/tmp您将键入的目录:

cd /tmp

上述命令用于导航和在远程位置上工作。

SFTP shell 还提供用于本地导航、信息和文件管理的命令。本地命令以字母 为前缀l

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

lpwd
Local working directory: /home/local_username

切换本地目录

lcd /home/username_local

 

使用 SFTP 传输文件

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

如果您在台式机上工作,您可以使用WinSCP 或FileZilla等 GUI SFTP 客户端 连接到远程服务器并下载或上传文件。

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选项:

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 的示例:

  • 获取有关远程系统磁盘使用情况的信息 :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复制您必须向chown andchgrp 命令提供用户 ID。
  • 使用以下命令更改远程文件的组所有者:chgrp group_id file_name复制

完成工作后,键入bye或关闭连接quit

结论#

在本教程中,我们向您展示了如何使用该sftp命令将文件下载和上传到您的远程 SFTP 服务器。

您可能还想设置基于SSH 密钥的身份验证 并在不输入密码的情况下连接到 Linux 服务器。如果您经常连接到相同的系统,您可以通过在SSH 配置文件中定义所有连接来简化您的工作流程

Please indicate: 无趣的人生也产生有意思的事件 » 如何使用 SFTP 命令传输文件

Hi, you must log in to comment !