Linux SCP 命令使用指南:高效文件传输的秘籍

        SCP(Secure Copy Protocol)是一种基于SSH(Secure Shell)的文件传输协议。它用于在本地主机和远程主机之间安全地复制文件和目录,或者在两个远程主机之间传输。由于SCP使用SSH进行数据传输,因此它提供了与SSH相同的安全性,包括数据加密和用户认证。

1 从本地复制到远程

scp [本地文件路径] [用户名]@[远程主机地址]:[远程文件路径]

      假设我们本地是windows操作系统,我们来演示一下如何把windows本地的文件通过scp传输到远程Linux服务器上。

第1步:打开cmd命令

可以进入到我们要传输文件所在的目录去打开cmd窗口,这样会方便些

第2步:输入命令

把本地的testscp.png图片拷贝到远程服务器192.168.0.163上的/home/flmtest/目录下

注意:

        我这里用的-P 2222 参数,因为我远程服务器的SSH端口是2222,如果是默认端口22的话,

-P 2222 就可以不写了,下面我们来执行命令看看效果👇

scp -P 2222 testscp.png flmtest@192.168.0.163:/home/flmtest/

界面显示传输成功

第3步:验证是否成功 

通过Xftp工具远程验证一下文件是否拷贝成功

文件传输成功

2 从远程复制到本地

  与《从本地复制到远程》正好相反,这里给出命令写法,就不做演示了

scp [用户名]@[远程主机地址]:[远程文件路径] [本地文件路径]

3 递归复制目录

  使用 -r 参数可以递归地复制整个目录,下面给出命令写法,就不做演示了

scp -r [本地文件路径] [用户名]@[远程主机地址]:[远程文件路径]

        SCP是一个非常实用的工具,特别适合于系统管理员和需要在不同系统间迅速安全传输文件的用户。

压缩文件并传输

        使用 scp -C 选项进行文件传输时,它会启用压缩功能。

        这意味着在传输过程中,数据会被临时压缩,以减少网络上的数据传输量,从而可能加快文件传输速度,特别是在带宽有限或传输大文件时。

        但需要注意的是,这种压缩是透明的(对于用户来说,这个压缩过程是不可见的,用户不需要手动解压接收到的文件,因为解压是自动进行的),即它仅在传输过程中发生。

scp -C -P 2222 testscp.png flmtest@192.168.0.163:/home/flmtest/

 

5 常用选项

-P 端口号: 指定SSH连接的端口。
-p: 保留原文件的修改时间和访问时间。
-r: 递归复制整个目录。
-v: 详细模式,显示详细的传输信息。
-C: 启用压缩,可以加快传输速度。

6 如何使用密钥认证连接 SSH

6.1 生成密钥对

        在本地计算机上使用 `ssh-keygen` 命令生成密钥对。

        默认情况下,这将在 `~/.ssh` 目录下创建一个 RSA 密钥对(`id_rsa` 和 `id_rsa.pub`)。

ssh-keygen -t rsa -b 2048

你可以选择为密钥对设置密码(推荐),这样即使私钥泄露,不知道密码的人也无法使用它。

6.2 复制公钥到远程服务器

        使用 `ssh-copy-id` 命令将公钥复制到远程服务器,这将把你的公钥添加到远程服务器的 `~/.ssh/authorized_keys` 文件中。

ssh-copy-id 用户名@远程服务器地址

        如果 ssh-copy-id 不可用,你可以手动复制公钥。

        首先,使用 cat 命令查看并复制你的公钥内容:

cat ~/.ssh/id_rsa.pub

        然后,登录到远程服务器,编辑 ~/.ssh/authorized_keys 文件,并粘贴你的公钥。

这里需要注意:如果authorized_keys和.ssh目录都不存在,则需要我们手动创建一下

(1)创建 .ssh 目录

        打开终端,然后执行以下命令来创建 .ssh 目录并设置适当的权限

mkdir -p ~/.ssh
chmod 700 ~/.ssh

(2)生成 SSH 密钥对

ssh-keygen

这将在 ~/.ssh 目录下生成一个新的密钥对(默认为 id_rsaid_rsa.pub)。

(3)创建 authorized_keys 文件

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

(4)将本地计算机上生成的公钥粘到authorized_keys中

        完成这些步骤后,authorized_keys 文件就应该设置好了,并且位于 ~/.ssh 目录中,这样就可以使用基于密钥的认证来进行 SSH 连接了。

6.3 测试使用密钥认证连接SSH

如上图,测试连接失败了,接着我们在远程服务器上做如下修改👇

sudo vim /etc/ssh/sshd_config

修改内容

  • PubkeyAuthentication yes
  • AuthorizedKeysFile .ssh/authorized_keys
  • PasswordAuthentication 可以设置为 no,如果希望禁用密码认证。

修改配置后,需要重启 SSH 服务,命令如下

sudo systemctl restart sshd.service

再次尝试通过密钥方式连接SSH,成功啦~

6.4 测试使用密钥认证连接SCP

scp -C -P 2222 testscp.png flmtest@192.168.0.163:/home/flmtest/

        最后总结一下,本文主要介绍了`scp`(安全拷贝)的多种实用技巧,旨在帮助大家在Linux系统中高效、安全地进行文件传输。

        此外,还介绍了如何使用压缩选项来加速文件传输,这些实用小技巧将使`scp`的使用变得更加灵活和高效,对于日常管理Linux系统的专业人士和爱好者都是非常有价值的参考,如果喜欢的话就赶快收藏关注吧~。

  • 22
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要在Linux系统中离线安装scp命令,可以按照以下步骤进行操作: 1. 首先,你需要下载scp命令的安装包。你可以在官方网站或其他可信的软件下载网站上找到适用于你的Linux系统的scp安装包。你可以使用wget或者其他下载工具将安装包下载到你的本地计算机上。 2. 然后,你需要将下载好的scp安装包传输到目标Linux服务器上。你可以使用scp命令将安装包从你的本地计算机上传到服务器上。例如,可以使用以下命令将安装包上传到目标服务器的指定路径: scp 安装包路径 user@服务器地址:目标路径 3. 在服务器上,你可以使用命令行或者图形界面工具(如文件管理器)进行安装。如果你使用的是命令行,你可以使用以下命令解压安装包: tar -xvf 安装包文件名 4. 解压后,你可以进入解压后的目录,并执行安装脚本或将可执行文件复制到系统的可执行路径中。具体的安装步骤可能因不同的scp安装包而有所不同,你可以查阅安装包的文档或网站上的指南来获取详细的安装说明。 请注意,离线安装scp命令需要具备管理员权限或者在服务器上拥有足够的权限。此外,确保你下载的安装包是来自可信的来源,以确保安全性。 引用给出了在Linux系统中使用scp命令进行文件复制的方法,引用提供了将安装包通过scp命令上传到目标服务器的示例,引用介绍了另一种通过安装ftp服务器来进行文件传输的方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

远见阁

你的鼓励就是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值