通过使用基于 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 实用程序。