现在的位置: 首页 > 综合 > 正文

CentOS 6.2 上安装使用私钥认证的Git服务器

2013年08月04日 ⁄ 综合 ⁄ 共 1666字 ⁄ 字号 评论关闭

A.  安装程序文件

sudo yum install git python-setuptools

cd /opt

sudo git clone https://github.com/res0nat0r/gitosis.git

cd gitosis/

sudo python setup.py install

B.  添加git用户

注意,git用户不要设置密码,使之不能登录。

sudo adduser -m git

创建git用户成功后,以后登录git用户需要首先登录root帐号,再su – git。

C.  在客户端生成公钥私钥对

客户端机器上首先需要安装Git客户端、TortoiseGit(以Windows为例),首先需要通过Git Bash生成公钥私钥对(需要输入的参数都留空):

ssh-keygen

这个命令会在当前用户目录下的.ssh目录生成id_rsa和id_rsa.pub两个文件,为了能让TortoiseGit使用私钥,还需要用TortoiseGit的Puttygen工具基于id_rsa文件生成putty的私钥,然后保存成.ppk文件:

D. 初始化gitosis环境

首先需要将生成的公钥上传到服务器,打开id_rsa.pub文件,看内容最后的用户名是什么,比如我生成的.pub文件是这样的:

ssh-rsaAAAAB3NzaC1yc2EAAAABIwAAAQEAzX7//rMabzT5CUGdX+oiEq3k3el56yanqcwtpIfQYVJ09pu/1Se2zLCQBVjav10a3bsURoNWE/kqC6znBDtaC5wl8MdhT8hW5+YpMHT0ub6G3UkYJLD4vW7z+J/ziFazSTJEpn/YAALj8tlr880ho8bu+CTUdV0bPrFDngbUakjKTPH4l/vLLYdirrQ1uh/FmZOUWBLr8+JbbFYUZ3SKyID1reS5ekf+7H5w+R0qGJPLeXVzdyKPWY/KHFc/t0nWKxKAZY0cNgdXgjlgZCqEI2+yrtEw+SyBaSz9bx2XwoSkDK0Z2As+68RslrYNOhkpvn5XkWhdIHc3H2N6mIzP2w==wuyf@WUYFWIN

因此改名公钥文件名为wuyf@WUYFWIN.pub,并将其上传到服务器,比如/tmp目录,然后使用这个用户初始化gitosis:

sudo -H -u git gitosis-init </tmp/wuyf\@WUYFWIN.pub

这个时候在git主目录的repositories目录下,已经初始化了用以管理git帐号的gitosis-admin仓库。

E.  克隆gitosis-admin仓库并配置

现在可以把gitosis-admin仓库克隆到本机,并进行配置,注意,在TortoiseGit客户端中需要加载上面生成的ppk格式的私钥:

如果要添加其它用户,在其它用户机器上执行上面的《C在客户端生成公钥私钥对》步骤,并且把.pub公钥添加到gitosis-admin仓库的keydir目录下,同时在gitosis.conf文件中为其配置其相应的group。下面是一个gitosis.conf的示例配置:

[gitosis]

 

[group gitosis-admin]

writable = gitosis-admin

members = wuyf@WUYFWIN

 

[group test]

writable = maventestcitest

members = wuyf@WUYFWIN xxx@YYY

F.  创建其它新仓库

使用root用户远程登录服务器,并切换到git用户:

su -

su - git

cd ~/repositories

mkdir test.git

cd test.git

git init --bare

下面就可以在客户机器上克隆这个仓库并使用了,仓库地址如下:

git@git_server_name:repository_name.git

其中git_server_name为git服务器的机器名或IP,repository_name是指定的仓库名。

【上篇】
【下篇】

抱歉!评论已关闭.