如何搭建自己的git服务器
起因
虽然说github很强大,但由于有些项目并不适合开源(代码太烂了),再说自己也买有VPS,就没必要再买github的私有空间(太贵了),于是网上找了些参考资料搭建git服务器并建立自己的私有仓库,试验成功后并写下总结存档。
需求
1.vps一台
2.putty或者Xshell(推荐)
3.GitBash(本地电脑用)
开始
安装Git
使用Xshell连接上vps终端,输入命令:
新建git用户
出于安全考虑,我们肯定不能直接使用root账号或者其它具有完整的shell执行权限的账号,因此我们创建一个git账号,再修改密码,输入命令:
此处账号、密码都为git(密码请记住,会用得上),你也可以自己设置。
禁用shell登录
还是出于安全考虑,我们创建的git用户并不希望能够登录shell,这样可以通过/etc/passwd/完成,输入命令:
找到类似这行(一般在文件尾)
修改为
如果不确认git-shell的位置,可以输入命令:
这样,git
用户可以正常通过ssh使用git
,但无法登录shell,因为我们为git
用户指定的git-shell每次一登录就自动退出。
Git密钥登录
接下来,出于方便考虑,我们进行远程仓库操作不用每次push
、pull
、fetch
都输入密码,我们建立ssh密钥证书就显得非常有必要了。
首先我们打开本地电脑安装好的GitBash,输入命令:
接下来会询问你路径以及密码,直接回车默认就好(一般文件放在C:\Documents and Settings\username\.ssh\
或者 C:\Users\username\.ssh
),在.ssh文件里面会有id_rsa
与id_rsa.pub
两个文件,下面我们会用到id_rsa.pub
文件。
紧接着在vps上输入命令创建/home/git/.ssh/authorized_keys
最后我们把本地的id_rsa.pub
文件里面的内容全部复制到authorized_keys
,这样我们就不用每次输入密码了,添加其它用户只要把id_rsa.pub
添加到authorized_keys
即可。
如果git公钥没有添加到authorized_keys
又进行远程仓库操作时,填写的密码就是上面git用户的密码。
初始化git服务器仓库
上面的操作完成后,我们终于可以开始创建自己的私有仓库了。
初始化仓库这里有个注意点,注意区分git init
与git init --bare
,详细可以参考What is a bare git repository?这篇文章。
我们先创建文件夹并进入目录:
然后输入命令创建仓库:
Git就会创建一个裸仓库。
修改git仓库owner
创建好仓库后,我们一定要将仓库的owner设置为git
用户,不然我们以后进行push
操作时会出现Permission denied
,输入命令:
clone远程仓库
现在就可以clone
我们建立好的远程仓库了,在本地GitBash输入命令:
需要注意的是
1.vps_ip即为你vps的IP
2.如果你的vps修改了port的话,地址应该是这样:
1 ssh://git@vps_ip:port/home/git/gitTest
最后
到此,整个过程已经完成,just enjoy it!