gpt4 book ai didi

git - 我可以通过 http "disable"git-clone 吗?

转载 作者:IT王子 更新时间:2023-10-29 00:46:10 28 4
gpt4 key购买 nike

我正在使用 git 来管理一个小项目。我一直在通过 SSH 执行所有事务(克隆、推送、 pull 等),但最近运行了 git-update-server-info,因为我想尝试通过 http 运行 git-clone。效果很好。凉爽的。现在我意识到任何人都可以在没有任何凭据的情况下通过 http 克隆我的存储库。我隐约知道通过 gitosis 设置 http 身份验证,但这真的不是我想要的。我宁愿完全禁用 http 克隆。

有没有办法让 git 只允许通过 ssh 进行交易?或者我可以撤消我在运行 git-update-server-info 时所做的操作以首先启用通过 http 的克隆吗?

最佳答案

要使 git 存储库通过 HTTP 传输可用,它需要由(任何)网络服务器“导出”。如果您的存储库(更准确地说是它的 .git 目录)在 Web 浏览器中从外部可见,则可以通过 HTTP 协议(protocol)匿名克隆或获取它。 git update-server-info用于生成额外的辅助帮助信息(.git/objects/info/packs.git/info/refs)以供克隆(或获取)了解可用的内容.

所以您需要做的是删除这两个文件(.git/objects/info/packs.git/info/refs) ,或者只是让它无法通过网络访问您的存储库,可能是通过更改权限以网络服务器运行的用户(通常是'nobody'或'www',或'apache') 无权访问 .git 存储库。或者配置网络服务器,使其不会导出(使其可见)您的存储库。

HTTP 协议(protocol)(​​目前)是所谓的“哑”协议(protocol),这意味着它按原样提供文件,访问控制由 [哑] 服务器完成,在本例中由您使用的 Web 服务器(或文件系统)完成.

我猜你的存储库不是由网络服务器导出的,所以你不必担心:你的存储库无法通过 HTTP 访问

请注意,Git 存储库通常具有匿名、未经身份验证的只读访问权限,并且仅在写入存储库时需要身份验证,即推送(至少对于开源项目而言)

关于git - 我可以通过 http "disable"git-clone 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1348568/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com