1

我正在将 VIM 配置为rsync在保存文件后执行 a,将我的服务器与我的开发笔记本电脑同步。它不起作用,因为 rsync 会提示我输入密码,即使我已经设置了公钥登录。如何解决这个问题?

4

4 回答 4

2

与其使用 vim ,不如使用incron?它随大多数现代 Linux 发行版一起提供,并将同步任何更改,而不仅仅是您在 vim 中所做的更改。

于 2013-04-22T09:41:53.150 回答
2

如果您使用ssh-connection with rsync,您始终可以为其设置无密码连接。[Here][1]一些不错的教程。它也可以通过 PuTTY、PLink、Pageant 等在 Windows 上完成。阅读文档。

于 2013-04-22T08:25:53.043 回答
1

明确定义ssh-key您要使用的ssh -i

  • :nnoremap <expr> <D-s> ':w!<cr>' . ':!rsync -r -e ssh -i /home/user/.ssh/id_rsa ~/Folder/* user@my_ssh_server.com:~/Folder/ &<cr>' . ':!osascript ~/applescripts/chromereload.scpt &<cr>'

或者您可以尝试将您的shell 变量设置为交互式,即使用~/.bashrc++ ( man bash)。不确定它是否有任何影响。

  • :set shell=/bin/bash\ -i

和/或根据需要在您的中定义别名~/.bashrc。也许将它与任何东西结合起来chromereload.scpt

  • alias vimsync='rsync -r -e ssh -i /home/user/.ssh/id_rsa ~/Folder/* user@my_ssh_server.com:~/Folder/'

更多信息:
vim -- 在交互模式下不识别别名?

于 2013-04-23T00:04:53.497 回答
0

I haven't tried this but it should work:

Put this into your ~/.ssh/config file: ControlMaster auto ControlPath ~/.ssh/cm_socket/%r@%n:%p ControlPersist 300 KeepAlive yes ServerAliveInterval 60

Create the directory ~/.ssh/cm_socket and ssh into the server from another terminal. Now when you ssh into the server again it should use the same socket and no password is required, so your rsync command should work without password.

于 2013-11-29T09:19:19.580 回答