ubuntu/centos上搭建git服务器

分别在ubuntu和centos7上试过了。

安装配置gitolite
git服务器账号:git
git管理员账号:work
 

1.服务器的root账号下git安装,openssh
省略

2. 服务器上新增git账号

3. gitolite服务端的安装(git账号)
1) gitosis已经不维护了,改用gitolite
2) git账号下,在~/目录下新建bin目录
3) 下载安装,并将安装目录加入当前环境变量中,这样在执行gitolite时不用指定路径:

~$ git clone git://github.com/sitaramc/gitolite
~$ gitolite/install -to /home/git/bin
export PATH=/home/git/bin:$PATH
echo $PATH

4. gitolite的管理员用户创建,生成密钥对(work账号)
1) 在本机上再创建一个work账号,作为git的管理员账号
2) 切换到work下生成密钥对
a. 查看~/是否有.ssh目录,如果有的话将里边的内容删除,如果没有新建目录.ssh
b. 生成密钥对,密钥文件名为my_idrsa

~$ ssh-keygen -f .ssh/my_idrsa

c. 查看密钥文件
~$ ls .ssh

d. 启动ssh-agent,如果成功,ps aux | grep ssh-agent能看到
ssh-agent bash

e. 将本地的私钥加入ssh环境中,如果成功会提示Identity added: … …
ssh-add .ssh/my_idrsa

3) 设置目录和文件访问权限
chmod 700 .ssh
chmod 600 .ssh/gitadmin


5. gitolite服务端的配置(要用到刚才管理员账号生成的公钥)
a. 切换到git账号登录

su - git(根据提示输入密码)

b. 将上一步生成的公钥my_idrsa.pub拷贝到~/下面,如果管理员在其他机器上,用rz上传或者scp来拷贝;这里: 
~$ sudo cp /home/work/.ssh/my_idrsa.pub ./

如果提示:git is not in the sudoers file.  This incident will be reported.
则可以切换到root用户登录来做cp操作,或者修改/etc/sudoers文件把git账号加入其中。
c. 设置公钥,如果~/.ssh已经存在且不为空,先清空,若不存在.ssh,会自动创建
~$ gitolite setup -pk my_idrsa.pub(假设$PATH中已经包含了/home/git/bin)

这个时候,如果之前已经试着建立过信任关系,会提示:
WARNING: keydir/my_idrsa.pub duplicates a non-gitolite key, sshd will ignore it
这个告警信息对gitolite没有影响,如果不想要出现这个warning,也可以在设置公钥之前,把authorized_keys文件里work账号的公钥删掉。
d. 删除~/目录下的my_idrsa.pub
rm -f my_idrsa.pub

e. 修改ssh目录和文件访问权限
chmod 700 .ssh
chmod 600 .ssh/authorized_keys


6. gitolite管理员的配置(work账号)
a. 配置管理员访问服务端的别名

~$ vi .ssh/config(如果这个文件不存在就新建)
host git  #给服务端设置的别名
        user git   #服务端的用户名
        hostname localhost  #这里管理员与服务端在同一台机器上
        port 22
          identityfile ~/.ssh/my_idrsa  #管理员登陆服务端使用的密钥


b. 设置config的访问权限
chmod 600 .ssh/config

c. clone服务器上的仓库gitolite-admin到管理员账号下,同时验证别名配置是否生效
~$ mkdir tmp
~$ cd tmp
~/tmp$ git clone git:gitolite-admin


注意:此处成功clone的前提是信任关系建立成功且别名设置成功
如果报错:
Bad owner or permissions on /home/work/.ssh/config
fatal: Could not read from remote repository.
则执行:
chmod 700 /home/work/.ssh
chmod 600 /home/work/.ssh/config


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值