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

本文章向大家介绍Linux如何使用 SCP 和 SFTP 安全传输文件,主要内容包括使用 SCP 复制文件、使用 SFTP 复制文件、总结、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。
通过使用基于 SSH 的身份验证,SFTP 和 SCP 是在系统之间安全地移动文件的便捷命令。

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

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

使用 SCP 复制文件

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

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

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

shell 复制代码
$ scp file1 user@192.268.1.3:/home/user

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

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

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

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

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

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

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

shell 复制代码
$ scp -r backup user@192.268.1.3:/opt/

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

使用 SFTP 复制文件

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

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

要建立 SFTP 连接,请使用:

shell 复制代码
$ sftp user@192.168.1.3

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

shell 复制代码
sftp>

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

shell 复制代码
$ sftp -oPort=2390 user@192.168.1.3

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

shell 复制代码
$ 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远程服务器上怎么办?在这种情况下,请使用:

shell 复制代码
$ sftp user@192.168.1.3
sftp> cd /etc
sftp> put /etc/resolv.conf 

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

shell 复制代码
$ sftp user@192.168.1.3
sftp> cd /opt 
sftp> get user_list

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

要上传目录,请使用:

shell 复制代码
sftp> put -r  new_folder 

要下载目录,请使用:

shell 复制代码
sftp> get -r  folder_from_remoteserver

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

总结

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

相关推荐
星河梦瑾4 分钟前
SpringBoot相关漏洞学习资料
java·经验分享·spring boot·安全
ldinvicible8 分钟前
How to run Flutter on an Embedded Device
linux
黑客Ela23 分钟前
对安全的认知
安全
YRr YRr1 小时前
解决Ubuntu 20.04上编译OpenCV 3.2时遇到的stdlib.h缺失错误
linux·opencv·ubuntu
认真学习的小雅兰.1 小时前
如何在Ubuntu上利用Docker和Cpolar实现Excalidraw公网访问高效绘图——“cpolar内网穿透”
linux·ubuntu·docker
zhou周大哥1 小时前
linux 安装 ffmpeg 视频转换
linux·运维·服务器
不想起昵称9292 小时前
Linux SHELL脚本中的变量与运算
linux
网络安全King2 小时前
计算机网络基础(2):网络安全/ 网络通信介质
计算机网络·安全·web安全