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 / 问题 / 111885
In Process
Humber
Humber
Asked: 2010-02-12 04:49:25 +0800 CST2010-02-12 04:49:25 +0800 CST 2010-02-12 04:49:25 +0800 CST

安全地限制对私有 Debian 存储库的访问

  • 772

我正在寻找一种方法来限制对私有 Debian 存储库的访问并能够以非交互方式对其进行身份验证(即使用脚本)

我发现的最有用的文章实际上来自Debian 管理站点,但安全方法使用 ssh 和公钥/私钥。它工作得很好,但每个主机的公钥都需要在远程 authorized_keys 文件中才能成功进行身份验证。它并没有说明向 ssh:// 提供密码,但我认为它应该是可能的。

您是否尝试过其他替代方案(例如 ftps)?

提前致谢

linux ubuntu debian apt
  • 5 5 个回答
  • 10341 Views

5 个回答

  • Voted
  1. MiniQuark
    2010-02-23T02:34:53+08:002010-02-23T02:34:53+08:00

    如果您总是手动在服务器上运行( cronsapt-get不会启动自动命令),那么您可能会考虑使用ssh agent forwarding。这避免了必须为您管理的每台服务器管理一个公钥/私钥对,并且可能比将私钥留在每台服务器上更安全。apt-get

    初始配置 - 连接到您要管理的服务器,并添加类似这样的/etc/apt/sources.list内容(此示例假设您希望您的服务器连接到manager帐户):

        deb ssh://[email protected]/path other stuff
    
    • 在您自己的计算机上创建一对私钥/公钥,johndoe例如使用您的登录名(假设您的计算机在 debian 上运行:如果没有,您可以从专用于管理的 debian 服务器执行此操作):

      ssh-keygen
      
    • 确保它受到强大的关键词保护
    • 将您的公钥复制到存储库服务器/home/manager/.ssh/authorized_keys:

      ssh-copy-id [email protected]
      

    每个管理会话一次

    • 通过键入以下内容在您的计算机上启动 ssh 代理:

      eval `ssh-agent`
      
    • 将您的密钥添加到代理(这将需要您的密码):

      ssh-add
      

    管理服务器

    • ssh -A使用(-A激活代理转发)连接到您要管理的服务器:

      ssh -A some.server.org
      
    • 切换到root(如果你想使用sudo你需要配置/etc/sudoers,否则sudo会破坏代理转发,阅读这个):

      su
      
    • 由于代理转发,您现在应该能够使用 ssh 连接到存储库的管理员帐户而无需再次输入密码。因此,apt-get应该可以正常工作:

      apt-get udate
      

    结束您的管理会话

    • 完成服务器管理后,从代理中删除密钥:

      ssh-add -D
      

    优点

    • 不需要太多初始配置
    • 只需要一个私钥
    • 私钥受强密码保护
    • 如果有人获得对您的其中一台服务器的 root 访问权限,他们将无法立即访问您的存储库服务器。
      • 请注意,如果黑客有耐心且有资格,他可以等到您使用代理转发连接到服务器,然后他可以劫持转发机制以获得对您的存储库服务器的访问权限。
      • 为了帮助防止这种情况,您可以使用ssh-ask来接受/拒绝每次尝试使用您的密钥。
      • 在任何情况下,黑客都无法访问私钥本身:他只能劫持转发机制以使用密钥,并且只能在您连接到服务器期间。
    • 5
  2. Antoine Benkemoun
    2010-02-12T05:05:11+08:002010-02-12T05:05:11+08:00

    一种方法是只允许一组特定的 IP 访问存储库。这对 LAN 和 VPN 非常有效。

    简单高效。

    • 4
  3. MiniQuark
    2010-02-22T14:41:53+08:002010-02-22T14:41:53+08:00

    ssh + 公钥/私钥解决方案还不错:

    • 在客户端机器上以 root 身份登录
    • 输入ssh-keygen,然后ssh-copy-id [email protected]
    • 编辑/etc/apt/sources.list并添加如下内容:

      deb ssh://[email protected]/path other stuff
      

    当然,它要求您将每个服务器的公钥放入服务器上的~/.ssh/authorized_keys文件中,但这并不复杂(见上文),它使您可以控制在任何给定时间允许或不允许哪些服务器(您可以在任何时间authorized_keys)。

    • 2
  4. MiniQuark
    2010-02-23T01:42:24+08:002010-02-23T01:42:24+08:00

    您可以设置对存储库的 https 访问,由登录名/密码(基本身份验证)保护。问题是您需要输入明文登录名/密码/etc/apt/sources.list(注意:有一个补丁允许输入登录名/密码/root/.netrc)。

    • 2
  5. Justin
    2010-02-22T15:06:46+08:002010-02-22T15:06:46+08:00

    您问题中的链接显示了多种方法。您想要数字 2,https + 基本身份验证。

    • 0

相关问题

  • 更改 PHP 的默认配置设置?

  • 保护新的 Ubuntu 服务器 [关闭]

  • (软)Ubuntu 7.10 上的 RAID 6,我应该迁移到 8.10 吗?

Sidebar

Stats

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

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

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

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

    • 9 个回答
  • Marko Smith

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

    • 3 个回答
  • Marko Smith

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

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +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