2017-04-10 33 views

回答

5

Git没有自己的身份验证.Git只是使用任何操作系统提供的。

在操作系统级别,使用Linux服务器,如果您自己拥有该Linux服务器上的帐户,则只能自己创建ssh <server>。我怀疑你在GitHub的服务器上没有帐户。 :-)但一些名叫git的人确实是

但是,他的登录shell不是常规的命令shell。它不会运行一般的Linux命令。当git(是John Git,还是Git Smith?)登录时,“他的”“shell”会被重定向到一个单独的程序,而不是Git的一部分,它将输入的键与,你已经掌握了所有用户的钥匙。这可以让他的外壳知道,不,这不是John Git,它是jwa。它就是那个壳,或者从它产生的另一部分,它可以让jwa访问jwa的存储库。

gitolite代码(主要用Perl编写)提供了一个如何在任何类Unix服务器上执行此操作的示例。但是,一旦你获得了几百个授权密钥,停止使用线性搜索来查找密钥也许是明智的,即停止使用内置的sshd本身。在数据库中查找密钥会快很多。

1

上述GIT中作为@torek答案有它自己的传输协议以及所述一个旁他描述GIT中也使用gitosis

https://git-scm.com/book/no-nb/v1/Git-on-the-Server-Gitosis

gitosis写入Python和是一个工具,它提供的访问控制和远程管理用于托管Git存储库。

+1

值得注意的是,我认为:gitosis和gitolite都是Git的附加组件。 [Gitosis似乎维护得少,功能也不那么好](http://stackoverflow.com/a/10888358/1256452)一位前同事建议,也许gitolite可以治愈gitosis。 :-)(名称“gitosis”听起来很像[口臭](http://www.dictionary.com/browse/halitosis)。) – torek

相关问题