AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 765252
Accepted
Zulakis
Zulakis
Asked: 2016-03-23 01:06:12 +0800 CST2016-03-23 01:06:12 +0800 CST 2016-03-23 01:06:12 +0800 CST

限制 rsync over ssh 只读/只从远程主机复制

  • 772

我希望备份主机能够从远程主机提取备份。

备份主机使用 ssh 密钥身份验证作为远程主机上的受限用户进行身份验证,该用户被限制为rsync使用该authorized_key文件的命令。

/etc/sudoers允许用户以超级用户身份执行 rsync。

备份主机在逻辑上应该只能从远程主机读取文件/复制文件,而不是向远程主机写入文件/复制文件,因为它很容易通过覆盖/etc/passwd或篡改文件来破坏远程主机。本身。

我怎样才能做到这一点?我已经阅读了关于rrsync,但没有看到允许这样做的选项。

linux
  • 4 4 个回答
  • 5547 Views

4 个回答

  • Voted
  1. Best Answer
    Zulakis
    2016-03-23T03:27:33+08:002016-03-23T03:27:33+08:00

    的-ro标志rrsync确保使用该--sender选项调用 rsync,根据rrsync文档,该选项应确保只能读取文件 - 但是,我找不到证实这一点的权威来源(又名 rsync 文档)。在我的测试中,阻止写入服务器就足够了。

    • 2
  2. Henrik
    2016-03-23T02:21:09+08:002016-03-23T02:21:09+08:00

    看看authprogs - 我将它用于非常相似的场景(通过 ssh 备份)

    • 1
  3. raddaqii
    2019-02-15T08:22:07+08:002019-02-15T08:22:07+08:00

    这接近死灵法,但我还是先发现了这个问题,觉得这是不完整的,因为它依赖于外部程序。

    因此,在拉模式下,在接收方方面,只读模式以信任为前提。作为一种备份方法,只要只有正确配置的客户端请求数据,上述命令就可以很好地工作。如果你想限制 rsync over ssh 可以做什么,一个远程设置ro客户端可能还不够。

    如果您有权访问服务器,则通过 SSH 从服务器中提取数据,则需要进行一些简单的额外配置来限制登录用户可以执行的操作。SSH 与公钥和私钥一起使用,提供了这种确保客户端只能调用特定密钥的额外方式command。

    这就是它的完成方式。在从中提取数据的服务器上,在的主目录中有一个~/.ssh/known_hosts文件。user该文件为每个主机保存一行,它知道它的公钥,就像这样

    ssh-dss AAAAB3....o9M9qz4xqGCqGXoJw= user@host

    用command你想要允许的前缀

    command="/bin/myscript.sh",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-dss AAAAB3....o9M9qz4xqGCqGXoJw= user@host

    让它user@host只能/bin/myscript.sh在远程执行。

    SO 站点上已结束了一个具有良好答案的相关问题。

    • 0
  4. raf
    2019-04-24T19:33:31+08:002019-04-24T19:33:31+08:00

    [披露:我写了下面描述的 sshdo]

    如上所述,rrsync 可用于控制 rsync 可以通过 ssh 执行的操作,但与大多数 ssh 强制命令的使用一样,它仅限于每个授权密钥的单个 rsync 命令。

    另一种控制 rsync 可以通过 ssh 执行的操作的方法是对 ssh 使用通用命令白名单控制。

    有一个名为 sshdo 的程序可以做到这一点。它控制哪些命令可以通过传入的 ssh 连接执行。可在以下位置下载:

    http://raf.org/sshdo/ (read manual pages here)
    https://github.com/raforg/sshdo/
    

    它有一个训练模式来允许所有尝试的命令,以及一个 --learn 选项来生成永久允许学习命令所需的配置。然后可以关闭训练模式,并且不会执行任何其他命令。

    它还有一个 --unlearn 选项来停止允许不再使用的命令,以便在需求随时间变化时保持严格的最低权限。

    它对它允许的内容非常挑剔。它不允许带有任何参数的命令。只能允许完整的 shell 命令。

    但它确实支持简单的模式来表示类似的命令,这些命令仅在命令行上出现的数字(例如序列号或日期/时间戳)中有所不同。

    它就像 ssh 命令的防火墙或白名单控制。

    • 0

相关问题

  • Linux 主机到主机迁移

  • 如何在 Linux 机器上找到有关硬件的详细信息?

  • 如何在 Linux 下监控每个进程的网络 I/O 使用情况?

  • 在 RHEL4 上修改 CUPS 中的现有打印机设置

  • 为本地网络中的名称解析添加自定义 dns 条目

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve