OS X 使用 ssh_config 在 sudo 下运行 rsync

Ste*_*son 2 macos ssh rsync

我想设置一个自动rsync作业来将我的 OS X 机器上的一堆用户帐户备份到 linux 文件服务器。我已经从我的帐户设置了无密码 ssh 到另一台机器,而且效果很好,所以我尝试使用以下命令:

sudo rsync -avz /Users/jbloggs myserv:/var/Backup/
Run Code Online (Sandbox Code Playgroud)

这里myserv是一个别名我的设置~/.ssh/config。我遇到的问题是我必须使用 sudo 才能使该命令起作用——在我的个人帐户下,我无权访问其他用户的主目录来复制文件以进行备份。该命令在没有 sudo 的情况下在我自己的帐户上运行良好,但是当我在 sudo 下运行时,它不再查看我的~/.ssh/config(因此它抱怨“未知主机 myserv”)。

如何让 rsync 在 sudo 下运行以仍然查看我的个人信息~/.ssh/config

谢谢!

Vol*_*lkA 5

您可以使用

ssh -i /Users/myuser/.ssh/id_rsa -F /Users/myuser/.ssh/config login@host
Run Code Online (Sandbox Code Playgroud)

让 ssh 使用您的配置/密钥文件。使用“-v”来检查它正在使用哪个文件。您还可以将您的配置 / id 复制到 /var/root/.ssh,当通过 sudo 使用 ssh 时,它将默认使用。

要将这些选项传递给 rsync,您必须像这样设置“--rsh”/“-e”:

rsync -e "ssh -i ... -F ..."
Run Code Online (Sandbox Code Playgroud)