基于rsync,局域网内,无需密码互传

一、环境假设

  • 电脑 A (IP: 192.168.1.100)

  • 电脑 B (IP: 192.168.1.101)

  • 两台电脑都安装了 rsyncopenssh-server

  • 如果没有安装,使用以下命令:

复制代码
  yum install -y rsync openssh-server
  yum install -y rsync

二、 操作

步骤一:在电脑 A 上生成 SSH 密钥

复制代码
  ssh-keygen -t ed25519  # 推荐,速度快。旧系统可用 -t rsa

按三次回车,使用默认路径和空密码。

  • 生成的密钥对默认保存在 ~/.ssh/id_ed25519 (私钥) 和 ~/.ssh/id_ed25519.pub (公钥)。

步骤二:将 A 的公钥拷贝到 B

bash 复制代码
# 在机器A上查看公钥
cat ~/.ssh/id_ed25519.pub
# 复制输出的内容,然后在机器B上执行:
echo "粘贴的公钥内容" >> ~/.ssh/authorized_keys

在电脑 A 上执行:
*

bash 复制代码
ssh-copy-id username@192.168.1.101

输入 B 的登录密码,公钥会自动添加到 B 的 ~/.ssh/authorized_keys

验证ssh username@192.168.1.101 应能无密码登录。
*

步骤三:实现双向免密(可选)

  • 如果也需要从 B 无密码访问 A,在电脑 B 上重复步骤一和步骤二:
bash 复制代码
# 在电脑 B 上操作
ssh-keygen -t ed25519
ssh-copy-id username@192.168.1.100

步骤四:使用 rsync 无需密码传输

从 A 推送文件到 B:
bash 复制代码
# 将本地文件夹 /data 同步到 B 的 /backup 目录
rsync -avz -P /data/ username@192.168.1.101:/backup/
从 A 拉取 B 的文件:
bash 复制代码
# 将 B 的 /data 文件夹拉取到本地的 /backup 目录
rsync -avz -P username@192.168.1.101:/data/ /backup/

三、高级进阶

  • 1.自动化脚本
  • 配合 cron 定时任务,实现自动同步:
bash 复制代码
# 每天凌晨 2 点自动备份
0 2 * * * rsync -avz --delete /data/ nas:/backup/ >> /var/log/backup.log 2>&1
相关推荐
Joy T9 分钟前
【PE 最终章】思维链、自洽性与 Prompt 安全防御指南
网络·prompt·prompt engineer·提示词工程
SoveTingღ24 分钟前
【问题解析】我的客户端与服务器交互无响应了?
服务器·c++·qt·tcp
zhougl99630 分钟前
Vuex 模块命名冲突:问题解析与完整解决方案
linux·服务器·apache
一世琉璃白_Y31 分钟前
Ubuntu(VMware)虚拟机网络异常排查与解决方案
linux·网络·ubuntu
爱丽_1 小时前
MyBatis动态SQL完全指南
服务器·sql·mybatis
I · T · LUCKYBOOM2 小时前
1.Apache网站优化
linux·运维·服务器·网络·apache
无尽的罚坐人生2 小时前
lettcode hot 100题解(待更新完毕)
网络
GHL2842710902 小时前
vmware中无法看到共享文件夹
linux·运维·服务器
我是伪码农2 小时前
注册表单提交加验证码功能
运维·服务器
请为小H留灯3 小时前
Windows 系统启用 Telnet 客户端:图文详细教程
网络·windows·测试·telnet