📜  如何使用 SFTP 传输文件?

📅  最后修改于: 2022-05-13 01:56:11.957000             🧑  作者: Mango

如何使用 SFTP 传输文件?

SFTP(安全文件传输协议)或 SSH(安全外壳)文件传输协议)是一种文件传输协议,用于在客户端和服务器之间传输文件。它使用 SSH(Secure Socket Shell),也称为 Secure Socket Shell 文件传输协议。它提供对远程服务器的安全访问,以安全传输文件。

安全 FTP 的出现是为了满足通过隧道增强安全性的需求。它使用 Secure Shell 2 (SSH2) 创建安全隧道并模拟 FTP 连接,以提供防火墙友好和加密通道,以使用流行的 TCP 端口 22 传输文件。SSH 通过拥有整个文件传输会话提供增强的安全性,包括所有会话控制命令,始终完全加密,同时只需要在防火墙上打开一个端口,而不是需要为 FTP 和 SSL 连接打开的两个端口。

SFTP 使用 SSH 协议传输文件。您需要先配置 SSH。检查您是否配置了 SSH。在您的服务器上执行以下操作

$ ssh geeksforgeeks@your_server_ip_or_remote_hostname.

“geeksforgeeks”替换为您的用户名,将“your_server_ip_or_remote_hostname”替换为您的服务器 IP 或主机名。

如果可行并且您已登录。您就可以开始了。如果没有,您需要先设置 SSH 访问。

然后从提示中退出。

$ exit

建立 SFTP 会话:
我们可以使用以下命令连接到 SFTP 会话。

$ sftp geeksforgeeks@your_server_ip_or_remote_hostname

此命令会将您连接到远程会话,并且提示符将更改为 SFTP 提示符。

如果您使用的是自定义 SSH 端口(不是默认端口 22),则可以使用以下命令连接到 SFTP。

$ sftp -oPort=customport geeksforgeeks@your_server_ip_or_remote_hostname.

在这里,将“customport”更改为您正在使用的端口号。此命令将使用您指定的端口将您连接到 SFTP。

使用 SFTP 传输文件:

1. 将远程文件传输到本地系统 –
如果我们想从远程主机传输文件,我们可以使用以下命令来实现。

sftp> get remote-file
Output
Fetching home/geeksforgeeks/remote-file to remote-file
/home/geeksforgeeks/remote-file                       100%   40KB  39.8KB/s   00:05

在这里,远程文件将是您要传输的文件的名称。 get 命令将在本地系统上下载与服务器上同名的“remotefile”

我们可以通过在远程文件名后面指定名称,将具有不同远程主机的远程文件下载到我们的机器上。

sftp> get remote-file local-file

get 命令还可以将一些标志作为选项。例如,如果我们想复制一个包含所有内容的目录,我们可以使用“-r”递归标志。

sftp> get -r some-directory

2. 将本地文件传输到远程系统 –
使用put命令可以轻松地将文件从本地系统传输到远程系统。

sftp> put localFile
Output
Uploading local-file to /home/geeksforgeeks/local-file
local-file                                     100% 7607     7.4KB/s   00:00

Put可以使用与get相同的选项标志。因此,复制整个目录将其所有文件都可以使用。

sftp> put -r local-directory

结论 :
SFTP 是利用 FTP 或 SCP 的优势在本地和远程文件和文件夹之间执行传输的更好方法。