我正在尝试使用lsyncd
自动将文件移动到我的本地开发服务器。我的主机是 OSX 10.9。
服务器上的 SSH 可以正常工作。我可以使用 ssh 从主机进行连接。我正在使用 SSH 密钥登录。我想做同样的事情lsyncd
并让它使用相同的密钥。
我已经安装了https://github.com/markcarver/mac-ssh-askpass因为 OSX 不包括ssh-askpass
但它不断要求输入[email protected]
.
lsyncd
我在 Mac OSX 10.9 上使用时非常头疼。谷歌并没有多大帮助,因为不同版本之间使用的选项lsyncd
已经改变,并且文章/指南不一致。
这是我的设置文件:
settings {
logfile = "/var/log/lsyncd/lsyncd.log",
statusFile = "/var/log/lsyncd/lsyncd.status",
statusInterval = 1
}
sync {
default.rsyncssh,
source = "/Users/jay/Desktop/snapnames",
host = "snapdev.com",
targetdir = "~/public_html",
excludeFrom = "/etc/lsyncd/lsyncd.dev.exclude",
rsync = {
protect_args = false,
archive = true,
compress = false,
whole_file = false,
},
ssh = {
port = 1337,
_extra = {"/usr/bin/ssh -l developer -p 1337 -i /Users/jay/.ssh/id_rsa.pub -o StrictHostKeyChecking=no"}
}
}
为什么要求输入密码? SSH 在同一主机上使用我的密钥无需密码即可工作。
很困惑,因为我什至没有登录root
编辑:我现在已经改用Grunt
. OSX 上的 lsyncd 太麻烦了。但我仍然想要一个答案,这样我就知道我哪里出了问题。
答案1
您似乎正在提交密钥的公共版本而不是私有版本。
尝试改变:
/Users/jay/.ssh/id_rsa.pub
到
/Users/jay/.ssh/id_rsa