限制 GitHub 或 Bitbucket 存储库的访问
Posted
技术标签:
【中文标题】限制 GitHub 或 Bitbucket 存储库的访问【英文标题】:Limit Access of GitHub or Bitbucket Repository 【发布时间】: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。 【参考方案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 地址的流量访问公司资源。 这对于使用 *** 的组织特别有用,因为您现在可以限制来自指定子网外部的流量访问 GitLab UI 中的组资源。
可在自我管理和 GitLab.com 上在组级别进行配置,保持对组织最有价值的代码的严格控制变得比以往更容易。
请参阅 documentation 和 gitlab-org/gitlab-ee
issue 1985。
【讨论】:
【参考方案3】:Bitbucket 在基于 IP 的访问存储库中添加了新功能。基于 IP 访问 bitbucket 中的存储库,您需要购买高级版本的 bitbucket(5 美元/每位用户/月)。通过这些,您可以限制其他网络对存储库的访问。
【讨论】:
你能提供一个链接吗? Bitbucket 关于将 IP 地址列入白名单的文档 - confluence.atlassian.com/bitbucket/…【参考方案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;
"
最后,用
重新配置你的 gitlabgitlab-ctl reconfigure
【讨论】:
以上是关于限制 GitHub 或 Bitbucket 存储库的访问的主要内容,如果未能解决你的问题,请参考以下文章
markdown [操作方法]使用GitHub Desktop克隆并提交到Bitbucket存储库,就像使用任何GitHub存储库一样。 (苹果电脑)
将 GitHub for Windows 用于 Bitbucket 和 GitHub