我想在我的服务器上共享一个目录,以便同事可以通过 Unison(双向同步)同步它。我不希望他能够通过 ssh 访问读取服务器上的文件。最好是 ssh 用户无法登录,而只能通过 unison 同步。我该如何实现?
答案1
您可以使用文件command=
中的选项authorized_keys
在用户通过 ssh 连接时强制运行 Unison。这意味着他们无法获得登录 shell。您还可以在此文件中禁用端口转发和其他 ssh 功能。
该~/.ssh/authorized_keys
行看起来像这样(请注意-server
Unison 的选项):
command="/usr/bin/unison -server",no-port-forwarding,no-X11-forwarding,no-pty,no-agent-forwarding,no-user-rc ssh-rsa AAAAB3NzaC1y....
我还没有测试过这个。
有关command=
ssh 选项的更多信息,请参阅使用授权密钥限制可执行的 SSH 命令。
或者,您可以使用 VPN 或 ssh 端口转发来加密 Mike Pierce 上面提到的套接字方法中的连接,但这可能更复杂。