【问题标题】:Limit Access of GitHub or Bitbucket Repository限制 GitHub 或 Bitbucket 存储库的访问
【发布时间】:2016-03-23 10:59:16
【问题描述】:

有什么方法可以限制从特定 IP 地址访问 bitbucket 或 Github 存储库。

这意味着我只想从我的办公室访问我的组织存储库。

另外这个就是有什么办法暂时屏蔽掉?

是否有支持此功能的 git 提供程序?

SSH密钥只对不输入密码和用户名的git操作有用?

有什么办法可以解决这个问题?

我认为许多 IT 公司都在使用这项服务来保护他们的源代码。

是否可以在没有 git 服务的情况下实现这一点?

【问题讨论】:

  • 不是特定的 IP 地址,但您可以将其限制为仅限某些帐户(您未邀请的帐户将无法查看或签出您的代码)。这是付费功能。
  • 但是@slebetman,当他离开办公室时,他可以访问回购......这对我来说是个问题。
  • 嗯.. 通常我会认为这是一个功能。如今,大多数公司都希望他们的员工能够从任何地方访问代码。有关 github 的解决方案,请参阅 Tim 的答案。一种替代方法是使用 gitolite 或 gitlab 之类的东西在您自己的服务器上托管 repo。然后你甚至不必在互联网上公开你的代码。只需将其托管在您的 LAN 中即可。
  • @slebetman,我想了解更多关于在其他服务器上托管 repo 的信息,如你所说。能不能说的详细点,请提供你的邮件ID。

标签: git github version-control bitbucket gitlab


【解决方案1】:

BitBucket does not appear 目前支持IP地址限制:

我们没有任何计划在短期内添加此功能,但这是个好主意。我们将把这个问题作为功能请求保持开放。

GitHub Enterprise does appear 支持通过 IP 地址限制访问:

每当您通过管理控制台向 GitHub Enterprise 添加 SSH 密钥时,您还可以指定允许或拒绝来自哪些 IP 地址的连接。

至于 BitBucket 为何不急于添加此功能,我们可以查看构建 Git 的模型。 Git 的一个主要特性是它允许跨位置和 IP 地址的真正分布式开发。开发人员可以在家中、办公室或路上进行贡献,只需要互联网连接。他甚至可以在没有互联网连接的情况下继续提交。

【讨论】:

  • 这意味着 github 支持 ssh 密钥对吗?
  • 据我所知,是的,它支持 SSH 密钥。
  • 你能分享一个设置这个的链接吗
  • 查看 GitHub link I already gave。它详细介绍了如何配置您的 SSH 密钥以通过 IP 地址进行限制。
  • 让我检查一下,请稍等
【解决方案2】:

注意:GitLab 12.0(2019 年 6 月)确实具有“Restrict access by IP address ”功能。

但仅适用于Ultimate(自我管理)或Gold(gitlab.com)版本。

具有合规意识的组织可能希望禁止来自外部 IP 地址的流量访问公司资源。
这对于使用 VPN 的组织特别有用,因为您现在可以限制来自指定子网外部的流量访问 GitLab UI 中的组资源。

可在自我管理和 GitLab.com 上在组级别进行配置,保持对组织最有价值的代码的严格控制变得比以往更容易。

请参阅 documentationgitlab-org/gitlab-ee issue 1985

【讨论】:

    【解决方案3】:

    Bitbucket 在基于 IP 的访问存储库中添加了新功能。基于 IP 访问 bitbucket 中的存储库,您需要购买高级版本的 bitbucket(5 美元/每位用户/月)。通过这些,您可以限制其他网络对存储库的访问。

    【讨论】:

    【解决方案4】:

    对于GitHub Enterprise,IP 限制不再仅限于 SSH 密钥。

    参见“IP allow lists are now generally available”(2020 年 3 月)

    IP 允许列表现在普遍可供 GitHub Enterprise Cloud 客户使用 - 允许企业和组织所有者将对企业资产的访问限制为一组允许的源 IP。

    所有授权凭证类型(包括个人访问令牌和 SSH 密钥)都按 IP 允许列表过滤,适用于有权访问企业组织的所有应用、用户和角色。

    您也可以使用IP allow lists with GitHub Actions self-hosted runners

    在“Managing allowed IP addresses for organizations in your enterprise account”查看更多信息。

    【讨论】:

      【解决方案5】:

      您可以编辑文件 etc/gitlab/gitlab.rb 然后找到 whitelist 变量,取消注释并添加 ip

      gitlab_rails['monitoring_whitelist'] = ['xxx.xxx.xxx.xxx']
      

      然后找到并编辑带有 ip 的 custom_gitlab_server_config 变量

      nginx['custom_gitlab_server_config'] = "
       allow xxx.xxx.xxx.xxx;
       deny all;
       location ~ /.well-known {
        allow all;
       }
      "
      

      最后,用

      重新配置你的 gitlab
      gitlab-ctl reconfigure
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-04-21
        • 1970-01-01
        • 2020-12-19
        • 1970-01-01
        • 2021-11-13
        相关资源
        最近更新 更多