当前位置:  开发笔记 > 运维 > 正文

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

如何解决《我可以通过http"禁用"git-clone吗?》经验,为你挑选了1个好方法。

我正在使用git来管理一个小项目.我一直在通过SSH执行所有事务(克隆,推送,拉取等),但最近运行了git-update-server-info,因为我想尝试通过http运行git-clone.它运作得很好.凉.现在我意识到,任何人都可以通过http克隆我的存储库而无需任何凭据.我隐约知道通过gitosis建立http身份验证,但这真的不是我想要的.我宁愿完全禁用http克隆.

有没有办法告诉git只允许通过ssh进行交易?或者我可以撤消我在运行git-update-server-info时所做的事情,以便首先通过http进行克隆?



1> Jakub Narębs..:

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

所以你需要做的是要么删除这两个文件(.git/objects/info/packs.git/info/refs),要么只是通过网络提供你的存储库,也许通过改变权限,以便用户运行web服务器(通常是'nobody'或者'www'或'apache')无权访问.git存储库.或者配置Web服务器,使其不会导出(显示)您的存储库.

HTTP协议(当前)称为"哑"协议,意味着它按原样提供文件,访问控制由[哑]服务器完成,在本例中由您使用的Web服务器(或文件系统)完成.

我想您的存储库不会被Web服务器导出,因此您无需担心:您的存储库无法通过HTTP获得.

请注意,Git存储库通常会引用具有匿名未经身份验证的只读访问权限,并且只需要对存储库进行身份验证即推送(至少对于开源项目)

推荐阅读
k78283381
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有