搭建自己的Git服务器
搭建Git服务器
让我们先看下服务器端SSH访问的配置。在这个例子中,我们使用authorized_keys的方法认证用户。我们假设你的服务器是一个标准linux发行版,比如ubuntu。
首先,你需要创建一个git用户,并在用户目录下创建一个.ssh文件夹
接下来,你需要将开发者的SSH公钥添加到authorized_keys文件。我们这里假设你能获取到可信的公钥,并将它们保存到了临时文件中。公钥的内容应该大致像这个样子:
你需要将这个公钥放置在git用户.ssh文件夹中的authorized_keys文件的最后。
现在,你可以初始化一个空的仓库,运行 git init 命令,并附带--bare选项,这样就是单纯地初始化一个仓库,而不会变更当前目录。
然后,John、Josie或者Jessica就可以将项目的初版推送到这个仓库中了,步骤就是添加一个remote地址,并推送对应的分支。注意,如果你想增加一个项目,那么你就需要登陆到机器上来,再初始化一个新的仓库。我们将你使用到的服务器成为gitserver。如果你是公司内部使用,那么设置一个DNS,让域名gitserver指向这台机器。然后你就可以直接使用下列命令了。
(假设myproject是一个已经存在并且有些内容的文件夹)
这时,其他人就可以把这个仓库clone下来,做些修改再push回去了。
用上面的方法,你很快得到了一个可用的Git服务器,现在你可以跟很多人一起协作工作了。
注意,现在每个人都能够登陆到服务器上,并以git用户身份操作。如果你想限制这种可能,可以修改一下passwd文件。
你可以限制用户只能通过git-shell来进行操作。如果你这样设置git用户的登陆设置,那么git用户就无法登陆到机器上了。为了做到这种效果,使用git-shell替换bash和其他登陆shell。所以如果你的/etc/shells中没有git-shell,那么你需要先添加上去:
现在你可以为一个用户修改他的shell了
现在,git用户只能使用ssh推拉代码,而不能登陆到机器上了。
如果你尝试登陆,会得到这样的提示信息
现在git的网络命令还可以正常使用,但是登陆到远程服务器上已经不行了。就像输出中显示的,你也可以在git用户目录下创建一个文件夹来定制git-shell的一些行为。例如,你可以限制git服务器接受的命令范围,或者更改尝试登陆的错误提示。对于定制git-shell的行为,你可以通过命令git help shell 查看相关的帮助信息。
英文原文:http://git-scm.com/book/en/v2/Git-on-the-Server-Setting-Up-the-Server
译者:诗书塞外
- 雍正到死都不知,滴血认亲时,甄嬛是如何料定他不会用自己的血?
- 农民在自家的宅基地上搭建钢架棚算违建吗?
- VS2008怎么搭建X64程序环境配置
- 足彩输了十来万,心里还一直想着中头奖,该怎么摆好自己的心态?
- 选择一款适合自己的保险,其实只需要五步
- 你可以不买房,也可以没有自己的家
- 这些小读物伴你度过每个孤独的夜晚
- 中国目前有真正的做出自己的国产芯片吗,为什么说芯片很难做?
- 自己的银行卡在网上可以查余额吗?怎么查
- 北京冰球小将留学文武兼修