在你的本地机器(发起 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/