Rsync 与 SSH 提示输入远程密码

Chi*_*ers 6 linux backup ssh rsync passwords

我已按照以下指南在本地计算机和远程服务器之间使用 SSH 设置 Rsync:

我以 root 身份执行了以下操作:

  1. rsync -avz -e ssh /home/user/dir root@192.168.200.10::Backup/dir -> 提示输入密码

  2. ssh-keygen -> 密钥生成

  3. ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.200.10 -> 确认密钥已复制

  4. ssh 192.168.200.10 -> 无需密码即可访问远程服务器

  5. rsync -avz -e ssh /home/user/dir root@192.168.200.10::Backup/dir -> 提示输入密码

我可以在不提示输入密码的情况下通过 SSH 连接到远程服务器,但在使用 rsync 时这样做,这并不奇怪吗?

我可以.ssh/authorized_keys在远程服务器上看到。

我哪里做错了?

Mar*_*iae 5

您正在混合两种单独的连接模式:使用远程 shell ( -e ssh) 和不使用远程 shell,通过 a rsync daemon(由双冒号标识)。

手册指出:

连接到 RSYNC 服务器

也可以在没有远程 shell 的情况下使用 rsync 作为传输。在这种情况下,您将连接到在 TCP 端口 873 上运行的远程 rsync 服务器。

……您可以使用双冒号 :: 而不是单冒号来分隔主机名和路径,或者使用 rsync:// URL。

......远程服务器上的某些路径可能需要身份验证。如果是这样,那么您在连接时将收到密码提示。您可以通过将环境变量 RSYNC_PASSWORD 设置为您要使用的密码或使用 --password-file 选项来避免密码提示。这在编写 rsync 脚本时可能很有用。

获得无密码身份验证的最简单方法可能是修改上面的命令,如下所示:

   rsync -avz -e ssh /home/user/dir root@192.168.200.10:/absolute/path/to/Backup/dir
Run Code Online (Sandbox Code Playgroud)