在你的本地机器(发起 rsync 的机器)上执行:

1. 生成密钥对(如果已有 ~/.ssh/id_rsa 可跳过)

ssh-keygen -t rsa -b 2048

一路按回车即可(默认路径,密码留空)。这会生成两个文件:

  • id_rsa(私钥):留在本地,是你的"身份证"。
  • id_rsa.pub(公钥):需要发给服务器。

2. 将公钥上传到远程服务器

ssh-copy-id -i ~/.ssh/id_rsa.pub username@remote_server_ip

这一步需要输入一次服务器密码,目的是把你的公钥写入服务器的 ~/.ssh/authorized_keys 文件。

3. 确保私钥权限为600(仅所有者可读写)

chmod 600 ~/.ssh/id_rsa

4. 验证测试

ssh username@remote_server_ip

如果配置成功,你会发现直接就能登录,不再需要输入密码。此时运行 rsync 命令也会直接静默执行。

配置好密钥后,rsync脚本即可全自动运行

#!/bin/bash
# 现在运行这个脚本,不会再弹出密码提示
rsync -avz -e 'ssh -p 22' /local/data/ user@remote_ip:/remote/backup/