** 编辑 8/6/15 * 所以我的问题的症结并不是配置文件的一些奇怪之处。最后发现我只是在两个不同的地方有多个 ssh 目录,并且使用了错误的目录。这是一个令人尴尬的错误,但活到老,学到老,对吧?
我正在尝试使用rsnapshot
.由于我无法理解的原因,rsnapshot
抛出以下错误:
rsync: Failed to exec /usr/bin/ssh -p 22 -i /home/thelemur/.ssh/id_rsa_n900: \
No such file or directory (2)
对我来说,奇怪的是我可以ssh
从 bash 终端运行相同的命令行,并且没有任何问题。我尝试过使用反斜杠,rsnapshot
从根目录输入命令,甚至sudo
直接将 a 放在rsnapshot
配置文件中。我还检查了配置文件中的选项卡位置。有谁知道我做错了什么?
答案1
如果您已将此命令放入 cmd_ssh 行中,如下所示:
cmd_ssh /usr/bin/ssh -p 22 -i /home/thelemur/.ssh/id_rsa_n900
那么您不幸地惹恼了 . 中的一个有趣的几乎错误rsnapshot
。问题是该cmd_ssh
参数采用整个值(包括空格)作为ssh
运行的替代方案,而您(以及之前的我)在这种情况下想要的是对该选项进行 shell 解析。
您需要做的是创建一个包含必要ssh
调用的小脚本并调用它,或者ssh
在$HOME/.ssh/ssh_config
.
前者比较容易;只需将以下内容放入脚本中,例如/home/thelemur/.ssh/ssh_with_id_rsa_n900.sh
:
#!/bin/sh
exec ssh -p 22 -i /home/thelemur/.ssh/id_rsa_n900 "$@"
然后使其可执行chmod u+x /home/thelemur/.ssh/ssh_with_id_rsa_n900.sh
,最后在rsnapshot
配置中使用它:
cmd_ssh /home/thelemur/.ssh/ssh_with_id_rsa_n900.sh