我有两台机器,本地和远程。
我想使用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 [...]
这样你就不必从服务器上的客户端硬编码命令行。