通过 vpn 进行 rsync (不是 ssh)

通过 vpn 进行 rsync (不是 ssh)

我想使用 rsync 通过 openvpn 将一些文件以 root 身份从一台服务器复制到另一台服务器,所有文件都在同一个 LAN 上(即不通过 Internet)。两台服务器都运行 Wheezy。我可以通过 ssh 执行此操作,但我不想这样做,因为我想保持 ssh root 访问权限处于禁用状态。VPN 正在运行 - 例如,从客户端我可以成功 ping 服务器的 openvpn IP(我可以使用 VPN ip 和 VNC 通过 Internet 连接,但对于此用例,我想在防火墙后面的 LAN 上复制文件)。但是,当我尝试 rsync 时,出现错误“拒绝通过端口 22 的连接”。问:这是我的 rsync 语法的问题吗?我应该使用哪种语法?或者使用这种方法,我需要在服务器上设置 rsync 守护程序吗?没有守护程序的 Rsync 似乎假定使用 ssh。

谢谢!

答案1

这个页面对您在 Debian Wheezy 上需要采取的步骤进行了相当详细(且简短)的描述。

http://www.server-world.info/en/note?os=Debian_7.0&p=rsync

请注意,当您使用 rsync 守护程序(而不是 ssh 上的 rsync)时,您使用 hostname::sharename 语法(在该页面的示例中,rsync 共享是“site”)。

因此您可以rsync -avz hostname::sharename从客户端运行或进行类似操作。

您可能希望使用 hosts.allow 仅允许特定 IP 地址。如果您也希望使用用户名/密码登录,请将其添加到 rsyncd.conf 中的共享定义中:

   auth users = user
   secrets file = /etc/rsyncd.secrets

然后创建一个 /etc/rsyncd.secrets

用户名密码

进而

chmod 600 /etc/rsyncd.secrets

答案2

rsync 是客户端-服务器程序,因此客户端必须连接到远程服务器上运行的某个程序,SSH 或 rsyncd。VPN 只是这里的传输,而不是要连接的服务。

我建议:

  1. 在 host2 上运行 rsync 守护进程并从 host1 连接到它
  2. 如果你不想使用 SSH,请尝试通过 NFS 将内容从 host2 挂载到 host1,然后在 host1 上使用 rsync 或 cp “本地”将你需要的内容复制到通过 NFS 导出的 host2 共享

相关内容