Linux中使用Gitolite搭建Git服务器,服务器和客户端可以为同一台
在linux系统中我们可以直接使用Gitolite 搭建 Git 服务器了,下面本文章就给各位介绍详细的配置过程,希望能帮助到大家。
一般来说,配置git服务器的话,需要一台服务器,还需要一个客户端来验证服务器是否搭建成功,而一般开发者基本都只有一台服务器,那就需要这台服务器既作为Git的服务器,又要作为客户端来使用了,下面的教程就是以服务器和客户端都是同一台服务器为例的。如果需要服务器和客户端分开的话,只需要将下面列出的服务器端和客户端的操作到相应的机器上操作就可以了。
第一步 ,服务器端创建git服务器专用账户,账户名字就叫git吧,创建之后为其设置密码,代码如下:
# useradd -m -s /bin/bash git # passwd git Enter new UNIX password : Retype new UNIX password : passwd: password updated successfully 切换到git用户,在家目录/home/git下创建安装目录bin,代码如下:
root@letuknowit:~# su - git git@letuknowit:~$ mkdir bin git@letuknowit:~$ ll total 24 drwxr-xr-x 3 git git 4096 Aug 20 10:38 ./ drwxr-xr-x 8 root root 4096 Aug 20 10:36 -rw-r--r-- 1 git git 220 Apr 3 2012 .bash_logout -rw-r--r-- 1 git git 3486 Apr 3 2012 .bashrc drwxrwxr-x 2 git git 4096 Aug 20 10:38 bin/ -rw-r--r-- 1 git git 675 Apr 3 2012 .profile 获取 Gitolite 并安装,gitolite要安装在服务器端,安装之前要保证系统上已经安装了git,代码如下:
git@letuknowit:~$ git clone git://github.com/sitaramc/gitolite Cloning into 'gitolite' ... remote: Counting objects: 8682, done. remote: Total 8682 (delta 0), reused 0 (delta 0) Receiving objects: 100% (8682/8682), 3.61 MiB | 33 KiB/s, done. Resolving deltas: 100% (4917/4917), done. git@letuknowit:~$ ll total 28 drwxr-xr-x 4 git git 4096 Aug 20 10:40 ./ drwxr-xr-x 8 root root 4096 Aug 20 10:36 -rw-r--r-- 1 git git 220 Apr 3 2012 .bash_logout -rw-r--r-- 1 git git 3486 Apr 3 2012 .bashrc drwxrwxr-x 2 git git 4096 Aug 20 10:38 bin/ drwxr-xr-x 6 git git 4096 Aug 20 10:40 gitolite/ -rw-r--r-- 1 git git 675 Apr 3 2012 .profile git@letuknowit:~$ gitolite/install -ln git@letuknowit:~$ ll total 28 drwxr-xr-x 4 git git 4096 Aug 20 10:40 ./ drwxr-xr-x 8 root root 4096 Aug 20 10:36 -rw-r--r-- 1 git git 220 Apr 3 2012 .bash_logout -rw-r--r-- 1 git git 3486 Apr 3 2012 .bashrc drwxrwxr-x 2 git git 4096 Aug 20 10:44 bin/ drwxr-xr-x 6 git git 4096 Aug 20 10:40 gitolite/ -rw-r--r-- 1 git git 675 Apr 3 2012 .profile 第二步, 客户端,创建 Gitolite 服务器管理员用户,并创建管理员用户密钥.
因为我们是在同一台服务器上,直接exit退回到root用户,之后变身为客户端模式,如果客户端和服务器分开的话,不需要exit指令了,直接在客户端执行添加用户的指令就可以了,这里的Gitolite服务器管理员用户名我们叫gitAdmin,代码如下:
git@letuknowit:~$ exit logout root@letuknowit:~# useradd -m -s /bin/bash gitAdmin root@letuknowit:~# passwd gitAdmin Enter new UNIX password : Retype new UNIX password : passwd: password updated successfully 切换到gitAdmin用户,创建用户密钥,代码如下:
root@letuknowit:~# su - gitAdmin gitAdmin@letuknowit:~$ mkdir .ssh gitAdmin@letuknowit:~$ ll total 24 drwxr-xr-x 3 gitAdmin gitAdmin 4096 Aug 20 10:48 ./ drwxr-xr-x 9 root root 4096 Aug 20 10:46 -rw-r--r-- 1 gitAdmin gitAdmin 220 Apr 3 2012 .bash_logout -rw-r--r-- 1 gitAdmin gitAdmin 3486 Apr 3 2012 .bashrc -rw-r--r-- 1 gitAdmin gitAdmin 675 Apr 3 2012 .profile drwxrwxr-x 2 gitAdmin gitAdmin 4096 Aug 20 10:48 .ssh/ gitAdmin@letuknowit:~$ ssh-keygen -f .ssh/gitAdmin Generating public /private rsa key pair. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in .ssh/gitAdmin. Your public key has been saved in .ssh/gitAdmin.pub. The key fingerprint is : 84:a0:9d:d6:c6:43:57:0e:22:cd:67:97:8e:03:be:09 gitAdmin@letuknowit The key 's randomart image is : +--[ RSA 2048]----+ | ooo o... | | o B++ooo | | . +.*+.+. | | .E..oo . | | . oS. | | o | | | | | | | +-----------------+ 接下来将管理员公钥(gitAdmin.pub)复制 到服务器上的 git 用户的家目录下,因为我们这个服务器和客户端是在一起的,所以就方便了,如果是两台机器的话,你可能要想点办法去拷贝这个文件了,代码如下:
gitAdmin@letuknowit:~$ exit logout root@letuknowit:~# cp /home/gitAdmin/.ssh/gitAdmin.pub /home/git/ root@letuknowit:~# ll /home/git total 36 drwxr-xr-x 4 git git 4096 Aug 20 10:53 ./ drwxr-xr-x 9 root root 4096 Aug 20 10:46 -rw------- 1 git git 788 Aug 20 10:45 .bash_history