Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos OSX使用ssh\u config在sudo下运行rsync_Macos_Ssh_Rsync - Fatal编程技术网

Macos OSX使用ssh\u config在sudo下运行rsync

Macos OSX使用ssh\u config在sudo下运行rsync,macos,ssh,rsync,Macos,Ssh,Rsync,我想设置一个自动rsync作业,将我的OS X机器上的一组用户帐户备份到linux文件服务器。我已经设置了从我的帐户到另一台机器的无密码ssh,它工作得很好,所以我尝试使用以下命令: sudo rsync -avz /Users/jbloggs myserv:/var/Backup/ 其中,myserv是在my~/.ssh/config中设置的别名。我的问题是,我必须使用sudo来让这个命令工作——在我的个人帐户下,我无法访问其他用户的主目录来复制要备份的文件。这个命令在没有sudo的情况下可

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

sudo rsync -avz /Users/jbloggs myserv:/var/Backup/
其中,
myserv
是在my
~/.ssh/config
中设置的别名。我的问题是,我必须使用sudo来让这个命令工作——在我的个人帐户下,我无法访问其他用户的主目录来复制要备份的文件。这个命令在没有sudo的情况下可以在我自己的帐户上正常工作,但是当我在sudo下运行时,它不再查看我的
~/.ssh/config
(因此它抱怨“未知主机myserv”)

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

谢谢

您可以使用

ssh -i /Users/myuser/.ssh/id_rsa -F /Users/myuser/.ssh/config login@host
让ssh使用您的配置/密钥文件。使用“-v”检查正在使用的文件。您还可以将配置/id复制到/var/root/.ssh,当通过sudo使用ssh时,默认情况下将使用该配置

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

rsync -e "ssh -i ... -F ..."

酷,谢谢你。在一般情况下(如果这不是一台家用计算机),那么将我的ssh_配置复制到/var/root将是一个安全漏洞,不是吗?这意味着任何具有sudo访问权限的人都可以使用该配置连接到远程主机?嗯,安全漏洞是固有的,因为您希望将文件批量复制到远程计算机,并为此使用未加密的私钥。任何拥有sudo访问权的人都可以通过ssh将未加密的密钥存储到远程pc中(通过一些工作还可以使用加密的密钥),因此最好的方法是生成一个新密钥,该密钥只能访问备份帐户-因此,如果您的密钥丢失,只有该帐户会受到损害。