在 Linux 上使用 SSH 设置 Rsync
当我执行 rsync 时,它会在开始传输之前询问我在远程服务器上的密码。我想避免这种情况,并在没有密码的情况下执行 rsync。能否举例说明如何在 Linux 上无密码通过 ssh 设置 rsync?
以下步骤说明了如何通过 ssh 设置不要求密码的 rsync。当您使用 rsync 为自动备份安排 cron 作业时,这很有帮助。
1. 通过 ssh 测试 rsync(使用密码):
执行 rsync 以确保它在远程服务器上询问您帐户的密码,并成功地将文件复制到远程服务器。
以下示例将本地文件夹 /home/ramesh 同步到远程文件夹 /backup/ramesh(在 192.168.200.10 服务器上)。
我们在之前的 15 篇rsync 示例文章中详细讨论了 rsync 。
这应该会询问您在远程服务器上的帐户密码。
rsync -avz -e ssh /home/ramesh/ramesh@192.168.200.10:/backup/ramesh/
2. ssh-keygen 生成密钥。
现在设置 ssh,以便在执行 ssh 时它不会要求输入密码。在本地服务器上使用 ssh-keygen 生成公钥和私钥。
$ ssh-keygen
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
注意:当它要求您输入密码时,只需按回车键,这里不要输入任何密码。
3. ssh-copy-id 复制公钥到远程主机
使用 ssh-copy-id 将公钥复制到远程主机。
ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.200.10
注意:以上将询问您在远程主机上的帐户密码,并自动将公钥复制到适当的位置。如果 ssh-copy-id 对您不起作用,请使用我们之前讨论的方法来设置 ssh passwordless login。
4. 无密码通过 ssh 执行 rsync
现在,您应该能够在不输入密码的情况下通过 ssh 连接到远程主机。
SSH 192.168.200.10
再次执行rsync,这次它不应该要求你输入任何密码。
rsync -avz -e ssh /home/ramesh/ramesh@192.168.200.10:/backup/ramesh/
如果要自动安排此 rsync 备份作业,请使用cron进行设置。
- 点赞
- 收藏
- 关注作者
评论(0)