环境
客户端:MacOS
服务端:阿里云Ubuntu
步骤
登陆服务器,添加git用户
1
sudo adduser --system --shell /bin/bash --group --disabled-password --home /home/git git
安装GitoLite
1
2
3
4
5
6
7
8# 切换到git用户
su - git
# 从GitHub上下载最新源码
git clone https://github.com/sitaramc/gitolite
# 创建安装目录
mkdir -p $HOME/bin
# 安装
gitolite/install -to $HOME/bin生成管理员的公钥和私钥
可选择在服务器上生成,这里直接在客户端上生成,方便我用Mac管理GitoLite
1
2# 输入路径和key名(一般在~/.ssh文件夹下) 然后通过lrzsz(或者其他手段)上传到服务器
ssh-keygen -t rsa设置该公钥为管理员公钥
1
2# 注意这里还是git用户输入的命令
$HOME/bin/gitolite setup -pk ${YourName}.pub在客户端下载用于管理GitoLite的库
1
git clone git@${YourHost}:gitolite-admin
也可配置客户端的SSH的config,使登陆更方便
1
2
3
4
5host ${YourShortcutName} # 配置的ssh简写,可随意取名,方便使用
user git
hostname ${YourHost} # GitoLite服务器地址
port 22
identityfile ~/.ssh/${YourName} #生成的公钥私钥对名拉取管理库
1
2# @前面的git是用户名,gitolite-admin是管理库名字
git clone git@${YourHost}:gitolite-admin.git添加其他客户端
将其他客户端的放到gitolite-admin/keydir目录下
1
2
3
4# 和正常的git库一样的用法
git add .
git commit -m "add user"
git push origin master权限管理,按照官方文档编写gitolite-admin/conf/gitolite.conf文件,并按上述步骤提交
1
2
3
4
5repo gitolite-admin
RW+ = ${YourName}
repo testing
RW+ = @all
总结
ssh的key这个地方很麻烦,这方面不专业,错一步排查起来不熟练,导致我每次都是重新装。