Rsync与ssh-keygen ssh用户有限的命令和特定的目录

我有两台机器,本地和远程。

我想使用rsync传输文件和文件夹,使用ssh-keygen自动login远程机器,自动备份文件和文件夹到远程机器。

我可以以ssh root身份执行此操作,但是这会带来一些安全风险:如果本地文件已被泄露,某人可以以root身份直接login到远程计算机。

我试过rssh,但是我无法使用ssh-keygen自动login。

我正在寻找的是一种创buildssh用户的方式,对shell命令的访问权限有限,只能访问特定的目录安全机制,以便自动login而不会对远程机器造成危害。

你可以通过在~/.ssh/authorized_keys文件中使用command="...."来限制使用ssh密钥对的command="...." 。 示例从这里拿走:

 $ cat ~/.ssh/authorized_keys command="/usr/local/bin/rsync --server -vlogDtprz --delete . /tmp",no-pty,no-agent-forwarding,no-port-forwarding ssh-rsa AAAAB3NzaC1y[...] kattoo@spaghetti 

rsync包含一个可以限制rsync的rrsync示例脚本。

例:

 command="/usr/local/bin/rrsync -ro /data",no-port-forwarding,no-X11-forwarding,no-pty ssh-rsa [...] 

这样你就不必从服务器上的客户端硬编码命令行。