我有两台机器,本地和远程。
我想自动将我的文件和文件夹备份到远程机器,使用 rsync 传输文件和文件夹,使用 ssh-keygen 自动登录远程机器。
我可以以 ssh root 身份执行此操作,但这会有一点安全风险:如果本地文件已被泄露,有人可以直接以 root 身份登录到远程机器。
我尝试了 rssh,但无法使用 ssh-keygen 自动登录。
我正在寻找一种方法来创建一个 ssh 用户,该用户具有对 shell 命令的有限访问权限,并且只能访问特定目录,可以安全地自动登录而不会对远程机器造成任何损害。
答案1
command="...."
您可以使用文件限制使用 ssh 密钥对时运行的命令~/.ssh/authorized_keys
。示例取自这里:
$ 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
答案2
rsync 包括一个同步可以限制 rsync 的示例脚本。
例子:
command="/usr/local/bin/rrsync -ro /data",no-port-forwarding,no-X11-forwarding,no-pty ssh-rsa [...]
这样,您不必在服务器上对客户端的命令行进行硬编码。