rsync 无密码,所有 google(服务器故障)教程都不起作用

rsync 无密码,所有 google(服务器故障)教程都不起作用

我需要使用 rsync 进行日常备份操作,过去(在不同的服务器上)我设法仅使用 rsa 密钥等,但现在所有 google(serverfault)教程都不起作用。

它一直要求我输入密码。

我对两台服务器都有 webmin 和 ssh/root 访问权限。

我的步骤:

  1. 在服务器 1 上创建密钥
  2. 发送key.pub到服务器2
  3. 添加key.pub.ssh/authorized_keys
  4. chmod 700 .ssh/authorized_keys
  5. 返回服务器 1 并尝试 rsync,它不断要求输入密码...

rsync 命令: rsync -avz -e ssh file.txt root@server2:/root

编辑:好吧,我清理了所有内容,这一次,我没有在密钥中插入自定义名称,而是使用了服务器 1 上的标准名称。将 .pub 发送到服务器 2,它就起作用了……所以答案是服务器 1 的 ssh 甚至没有使用正确的密钥……

答案1

检查您的新服务器是否允许 root 登录并接受公钥认证。

确保/etc/ssh/sshd_config

PermitRootLogin yes

PubkeyAuthentication yes

两者的默认值都是是,所以除非它们被列出并且不是是,否则你没问题。如果你更改了任何一个,请重新启动 sshd。

还请检查~/.ssh目录权限是否为 700

另一件需要检查的事情是,它要求的不是私钥的本地密码,对吗?如果是,您可能需要删除密码,然后采取措施保护公钥,锁定可以使用它运行的命令。

答案2

首先,您需要首次通过 ssh 进行连接。这将提示您将新的服务器指纹存储在 .ssh/known_hosts 上。然后,一旦您回答是肯定的,它应该就会连接。

连接可能因多种原因而失败。例如,如果您在.ssh/config文件中为该特定主机添加了选项,或者您的 ssh 程序不同意身份验证模式。为了更好地检查发生了什么,您可以使用选项通过 ssh 进行连接-v。这将在您的屏幕上打印一些信息。请在此处发布这些行。

答案3

解决方案是在创建密钥时使用标准名称。所有其他步骤保持不变,并且效果很好。

相关内容