使用scp和rsync通过 SSH 加密传输文件

使用 scp和rsync 通过 SSH 进行加密传输文件,所有数据,包括文件名、目录结构和文件内容,都是加密的。因此,在传输过程中,网络服务商和任何中间人都无法看到这些信息。

首先需要配置SSH密钥

SSH 密钥认证通常只需要在一台服务器上进行配置,具体取决于你希望实现的访问方向。以下是详细说明:

情况一:单向访问

如果你只需要从一台服务器(例如 ServerA)访问另一台服务器(例如 ServerB),你只需要将 ServerA`的公钥复制到 ServerB。

步骤:
1. 在 `ServerA` 上生成 SSH 密钥对(如果还没有生成):

ssh-keygen

默认情况下,这将在用户的 ~/.ssh/ 目录中生成 id_rsa(私钥)和 id_rsa.pub(公钥)文件。

2. 将 `ServerA` 的公钥复制到 `ServerB:

ssh-copy-id root@192.168.0.2

这会将 ServerA 上的 ~/.ssh/id_rsa.pub 公钥复制到 ServerB 的 ~/.ssh/authorized_keys`文件中。

3. 验证无密码访问:
在 ServerA上尝试 SSH 连接 ServerB:

ssh root@192.168.0.2

如果配置正确,你应该能够无密码访问 ServerB。

情况二:双向访问

如果你希望两台服务器相互访问(例如 ServerA 访问 ServerB,并且 ServerB`也能访问 ServerA),你需要在两台服务器上都进行密钥复制。

步骤:
1. 在两台服务器上生成 SSH 密钥对:
– 在 ServerA`上:

ssh-keygen

– 在 ServerB上:

ssh-keygen

ssh-keygen

2. 将 ServerA 的公钥复制到 ServerB**:
– 在 ServerA上:

ssh-copy-id root@192.168.0.2

3. 将 ServerB 的公钥复制到 ServerA:
– 在 ServerB上:

ssh-copy-id root@192.168.0.1

4. 验证双向无密码访问:
– 在 ServerA 上尝试 SSH 连接 ServerB:

ssh root@192.168.0.2

– 在 ServerB 上尝试 SSH 连接 ServerA:

ssh root@192.168.0.1

配置总结

– 单向访问:只需将源服务器的公钥复制到目标服务器。
– 双向访问:需要在两台服务器上分别生成密钥对,并将各自的公钥复制到对方的 `authorized_keys` 文件中。

 

使用scp

使用 SSH 隧道加密传输【远程服务器传输,从A服务器传输数据到B服务器】

scp -r /www/wwwroot/123/ root@192.168.0.2:/www/wwwroot/456/

使用 SSH 隧道加密传输【本地服务器拉取远程服务器,从其他服务器拉取数据到本地服务器】

scp -r root@192.168.0.2:/www/wwwroot/456/ /www/wwwroot/123/

使用rsync 【推荐使用这个传输比较稳定】

安装rsync

Ubuntu或Debian系统

sudo apt update
sudo apt install rsync

CentOS或Fedora系统

sudo yum update
sudo yum install rsync

加密传输【远程服务器传输,从A服务器传输数据到B服务器】

rsync -avz -e "ssh -v" /www/wwwroot/123/ root@192.168.0.2:/www/wwwroot/456/

增量拉取

rsync -avz --progress -e ssh /www/wwwroot/123/ root@192.168.0.2:/www/wwwroot/456/

带端口和普通用户方式

rsync -avz -e "ssh -v -p 223"  /www/wwwroot/123 abc@192.168.0.2:/www/wwwroot/456/

本地服务器拉取远程服务器【本地服务器拉取远程服务器,从其他服务器拉取数据到本地服务器】

rsync -avz -e ssh root@192.168.0.2:/www/wwwroot/456/ /www/wwwroot/123/

确保文件传输稳定使用下面这个

rsync -avz --progress --partial --ignore-errors --checksum --ignore-existing -e "ssh -p 22" root@192.168.0.2:/www/wwwroot/456//home/www/192.168.0.1/123/

增量拉取

rsync -avz --progress -e ssh root@192.168.0.2:/www/wwwroot/456/ /www/wwwroot/123/
免责声明:
1:如非特殊说明,本站对提供的素材及源码不拥有任何权利,其版权归原著者拥有。
2:本站内容均由互联网收集整理、网友上传,并且以技术研究交流为目的,仅供大家参考、学习,不存在任何商业目的与商业用途。
3:本站部分收费内容仅作本站日常维护费用,若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。
4:请勿将源码、软件进行商业交易、转载等行为,源码、软件只为研究、学习所提供,该软件使用后发生的一切问题与本站无关。
5:站内资源如有侵犯你版权的,请来信1058364519@qq.com指出,本站将立即改正。
6:素材源码均为网络收集,不承担任何版权问题,不提供任何技术支持!
7:严重警告本站木屋模型、木屋CAD图纸、木屋效果图未经允许不得转载:凡木屋模型及CAD文章由设计师QINYUHUI设计制作,享有内容所有权,文章仅在QINYUHUI名下网站、信息平台或嘿很有内涵微博发布,未经授权违者必究!!!

MASUC » 使用scp和rsync通过 SSH 加密传输文件