1.客户端
(1)使用ssh-keygen命令在当前用户根目录下生成密钥
(2)将该密钥远程拷贝到gitserver服务器上:scp ~/.ssh/id_rsa.pub user@ip:/tmp/neu.pub
2.git server服务器端
(1)安装gitolite:sudo yum install gitolite
(2)默认安装后,会生成一个gitolite用户,修改该用户密码:passwd gitolite
(3)切换到gitolite用户:su - gitolite
注:切换用户后,终端会显示提示符是:-sh-4.1$
(4)通过命令创建初始用户:gl-setup /tmp/neu.pub
注:该命令会将客户端的neu用户,添加到gitolite-admin工程中,具有管理gitolite-admin的权限
3.回到客户端
(1)在客户端的根目录下的.ssh目录下创建文件config,即:~/.ssh/config,添加如下内容:
host gitserver
user gitolite
hostname 192.168.1.8(Gitサーバのホスト名 or IP)
port 22
identityfile ~/.ssh/admin(秘密鍵のPATH)
(2)使用git clone ssh://gitserver/testing下载测试工程,如果下载成功,则证明安装成功。再下载gitolite-admin工程,进行用户管理。
如果有以下错误:
Initialized empty Git repository in /home/neu/testgit/testing/.git/
Bad owner or permissions on /home/neu/.ssh/config
fatal: The remote end hung up unexpectedly
解决办法:chmod 600 config
4.用户管理:
(1)将用户的密钥拷贝到git server的/tmp目录下,并重命名。
(2)在用户根目录下的.ssh目录中创建config文件。
(3)在git server服务器上,切换到gitolite用户后,用“gl-setup /tmp/neu.pub”命令创建用户。
(4)在gitolite-admin工程中的配置文件中赋予权限并提交工程。
(5)用户可以使用"git clone ssh://gitserver/testing"命令下载工程。
笔者在做第四步操作时,尝试将用户的公钥直接添加到gitolite-admin工程中,来替换第三小步,但是提交工程后,在用户下clone时,出现了以下问题,可能是公钥的权限问题导致,目前还未进一步调查。
Initialized empty Git repository in /home/neu/testgit/testing/.git/
Address 172.30.1.134 maps to pc1397.neusoft.co.jp, but this does not map back to the address - POSSIBLE BREAK-IN ATTEMPT!
gitolite@172.30.1.134's password:
fatal: '/testing' does not appear to be a git repository
fatal: The remote end hung up unexpectedly
出现以下错误,就是没有权限,说明配置成功。
Initialized empty Git repository in /home/neu/testgit/gitolite-admin/.git/
Address 172.30.1.134 maps to pc1397.neusoft.co.jp, but this does not map back to the address - POSSIBLE BREAK-IN ATTEMPT!
R access for gitolite-admin DENIED to iot8
(Or there may be no repository at the given path. Did you spell it correctly?)
fatal: The remote end hung up unexpectedly
转载请注明出处:http://www.cnblogs.com/gaojiang/p/6670233.html