使用gitolite搭建一个私有的git服务器,来管理git仓库。有了它,就可以跟小伙伴们愉快地进行远程协作啦。
今天又折腾了一遍,在这里把几个关键的步骤记下来,方便以后查阅。
准备工作
- 客户端生成密钥对:
ssh-keygen -t rsa
参数t
表示密钥类型,默认好像也是rsa
也可以用参数-f ~/.ssh/username
来指定一个名字
这样就会在~/.ssh
文件夹里出现username
和username.pub
两个文件。 - 服务器端创建git用户
useradd git
这个用户目录里就用来存放各种repo了~
需要注意的是,这个用户不能有 ssh pubkey-based access,也就是说创建完用户后应该不可以通过ssh git@hostname
的方式无密码登录服务器。 - 把公钥传到服务器git用户的根目录
scp ~/.ssh/username.pub git@hostname:~/username.pub
安装流程
- 输入
ssh git@hostname
输完密码后进服务器 - 确保
~/.ssh/authorized_keys
是空的或者没有这个文件 - 安装过程只有四步
git clone git://github.com/sitaramc/gitolite
mkdir -p $HOME/bin
gitolite/install -to $HOME/bin
$HOME/bin/gitolite setup -pk username.pub
嗯,就这么结束了…(噗
这个时候在客户机上尝试输入ssh git@hostname
似乎就无法正常登录了,会出现类似下面的提示:
hello weirdfish, this is git@li754-125 running gitolite3 v3.6.1-6-gdc8b590 on git 1.9.1
然后还能看到两个git仓库R W gitolite-admin
R W testing
看到上面这些内容就说明安装成功啦。
这时候使用git clone git@hostname:gitolite-admin
就可以往里边加新的repo和小伙伴进来了。
如果clone的时候还要输密码的话就说明哪里不对…
具体怎么增加用户和repo请看github上的说明。(喂!