使用 ssh-keygen 进行 rsync,以便使用有限的命令和特定目录与 ssh 用户进行通信

使用 ssh-keygen 进行 rsync,以便使用有限的命令和特定目录与 ssh 用户进行通信

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

我想自动将我的文件和文件夹备份到远程机器,使用 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 [...]

这样,您不必在服务器上对客户端的命令行进行硬编码。

相关内容