由于 Ubuntu 不允许使用 root 密码和登录,rsync
当远程主机需要 root 权限时,如何使用 ssh 将文件夹和文件从本地主机移动到远程主机?
答案1
答案2
一种方法是让远程端的用户无需密码即可使用 sudo 访问 rsync 命令。如果用户名为 rsyncguy,则可以/etc/sudoers
使用以下命令编辑文件以包含以下行sudo visudo
:
rsyncguy ALL=NOPASSWD: /usr/bin/rsync
这种方法本身存在安全风险,即该用户现在可以以 root 身份执行任何 rsync 命令,包括从其他服务器执行 rsync pull。为了缓解这种情况,您可以使用所需的精确 rsync 命令(如果可能保持不变)。
启用 sudo 访问后,您的 rsync 命令应始终包含 `--rsync-path="sudo rsync",以确保在远程端使用 sudo。
为该用户设置无密码的基于 SSH 密钥的身份验证也很有用。设置 SSH 密钥后,您可以在远程服务器上使用以下命令禁用 rsyncguy 的正常密码登录:
sudo passwd -l rsyncguy
这将增加另一层安全性。