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

来源:岁月联盟 编辑:exp 时间:2012-05-10

A.  安装程序文件sudo yum install git python-setuptoolscd /optsudo git clone https://github.com/res0nat0r/gitosis.gitcd gitosis/sudo python setup.py install
 B.  添加git用户注意,git用户不要设置密码,使之不能登录。sudo adduser -m git  www.2cto.com  创建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仓库。  www.2cto.com  
 E.  克隆gitosis-admin仓库并配置现在可以把gitosis-admin仓库克隆到本机,并进行配置,注意,在TortoiseGit客户端中
需要加载上面生成的ppk格式的私钥:

 如果要添加其它用户,在其它用户机器上执行上面的《C在客户端生成公钥私钥对》步骤,
并且把.pub公钥添加到gitosis-admin仓库的keydir目录下,同时在gitosis.conf文件中
为其配置其相应的group。下面是一个gitosis.conf的示例配置:[gitosis] [group gitosis-admin]writable = gitosis-adminmembers = wuyf@WUYFWIN [group test]writable = maventestcitestmembers = wuyf@WUYFWIN xxx@YYY
 F.  创建其它新仓库使用root用户远程登录服务器,并切换到git用户:su -  www.2cto.com  su - gitcd ~/repositoriesmkdir test.gitcd test.gitgit init --bare下面就可以在客户机器上克隆这个仓库并使用了,仓库地址如下:git@git_server_name:repository_name.git其中git_server_name为git服务器的机器名或IP,repository_name是指定的仓库名。   作者 warrenwyf