rsync 密码问题

rsync 密码问题

我有一个 Python 脚本。我用它rsync来在两个系统之间传输数据。运行时,它会要求输入密码进行数据传输。因此,我使用以下命令创建无密码运行。

ssh-keygen -t dsa 
ssh-copy-id -i $HOME/.ssh/id_dsa.pub [email protected]

现在一切正常。在运行我的 Python 脚本时,无需输入密码即可传输数据。但问题是我创建了一个 crontab 作业,并在每次重启时运行我的脚本,这意味着每次系统启动时,代码都会自动执行。

在这种情况下,重启后,我的脚本开始执行。但它要求目标系统输入密码进行数据传输(以 为名打开一个小对话框openssh)。

重新启动系统时不应该询问密码。

注意:如果我手动运行脚本,它就不会询问密码。数据可以完美地传输到目标系统。

如果你知道,请教我。我在等待。

答案1

我认为您的常规用户帐户的 ssh 密钥已经生成(存储在 中/home/user/.ssh/id_dsa)。

但是,重启 cron 可能是由 root 用户运行的,正在寻找 ssh 密钥,因为/root/.ssh/id_dsa

可能的解决方案:

  • 将您的 cron 放入用户 crontab 中crontab -e,以便您的用户运行 rsync/ssh 并使用您的用户的 ssh 密钥。
  • 为root用户生成ssh密钥,并将该密钥添加到远程服务器
  • 在 root crontab 中使用rsync -e "ssh -i /home/user/.ssh/id_dsa",以便 root 使用你的用户 ssh 密钥
  • 仔细检查您的 ssh 密钥是否未使用密码保护生成。如果是这种情况,您将需要手动输入密码来解锁 ssh 密钥。

相关内容