Linux如何使用 SCP 和 SFTP 安全传输文件

2022-05-07 15:27:58 浏览数 (2)

通过使用基于 SSH 的身份验证,SFTP 和 SCP 是在系统之间安全地移动文件的便捷命令。

在系统之间移动文件是 Linux 系统管理员的常规操作之一,通过网络传输数据时,一个重要的考虑因素是您使用的介质的安全性。

在 Red Hat Enterprise Linux (RHEL) 上,SFTP(安全文件传输协议)和 SCP(安全复制)是在系统之间安全移动文件的便捷命令。作为 OpenSSH 套件的一部分,这些工具依靠安全外壳 (SSH)来传输文件,这意味着它们使用相同的身份验证并提供与 SSH 相同的安全性。

使用 SCP 复制文件

要使用 SCP 传输文件,请指定远程服务器的 IP 地址或主机名以及您希望它复制文件或目录的目标路径,对 SCP 使用与 SSH 相同的用户名和凭据。不需要其他凭据。

如果该文件已存在于目的地,SCP 将替换或覆盖该内容。为目标路径使用绝对路径名也是明智之举。

要使用命令传输文件scp,请使用以下语法:

代码语言:txt复制
$ scp file1 user@192.268.1.3:/home/user

file1此示例在本地服务器上复制到/home/user/位于 192.168.1.3 的远程服务器上。

在 SSH 服务器使用不同端口(例如 2390)的情况下,复制文件的命令如下所示:

代码语言:txt复制
$ scp -P 2390 file1 user@192.268.1.3:/home/user

注意:-P是大写而不是小写-p (与使用 SSH 时一样)。

如果公钥和私钥存储在非标准位置,则需要指定它们的路径,例如,如果私钥存储在/home/keys/id_rsa,则命令为:

代码语言:txt复制
$ scp -i /home/keys/id_rsa -P 2390 file1 user@192.268.1.3:/home/user

也可以使用-r参数复制目录。要复制名为 的目录backup,请使用:

代码语言:txt复制
$ scp -r backup user@192.268.1.3:/opt/

命令将整个backup目录复制到/opt/backup. 请注意,您需要确保与您连接的用户有权执行您想要执行的操作。

使用 SFTP 复制文件

SFTP 是一个安全的文件传输程序,它也依赖于 SSH 并且是交互式的。该工具类似于 FTP,但它使用 SSH 端口 22。

当您启动 SFTP 连接时,它会连接到其目的地并在远程服务器上进入交互模式。然后,您可以使用 、 、 和 等get命令put传输cd文件 rmdir。

要建立 SFTP 连接,请使用:

代码语言:txt复制
$ sftp user@192.168.1.3

您应该有一个类似于以下的命令提示符:

代码语言:txt复制
sftp>

如果 SSH 在备用端口上运行,请使用:

代码语言:txt复制
$ sftp -oPort=2390 user@192.168.1.3

使用无密码连接时,如果私钥名称不同或存储在与默认位置不同的位置,请使用:

代码语言:txt复制
$ sftp -o IdentityFile=~/.ssh/id_rsa_key user@192.168.1.3

上面的例子使用 192.168.1.3 的私钥连接到 192.168.1.3 ~/.ssh/id_rsa_key。

如果要将文件/etc/resolv.conf文件传输到/etc远程服务器上怎么办?在这种情况下,请使用:

代码语言:txt复制
$  sftp user@192.168.1.3
sftp> cd /etc
sftp> put /etc/resolv.conf 

要将远程服务器命名的文件下载/opt/user_list到本地系统,请执行以下操作:

代码语言:txt复制
$  sftp user@192.168.1.3
sftp> cd /opt 
sftp> get user_list

您可以使用该-r参数上传和下载目录。

要上传目录,请使用:

代码语言:txt复制
sftp> put -r  new_folder 

要下载目录,请使用:

代码语言:txt复制
sftp> get -r  folder_from_remoteserver

有关其他选项,请使用该sftp –help命令或通过键入来查阅手册页man sftp。

总结

使用安全文件复制命令(例如scp和sftp)是网络强化和一般安全计划的重要组成部分,这些命令很简单,并且依赖于熟悉且值得信赖的 SSH 实用程序。

0 人点赞