在MacOS上搭建Git 服务器

创建Git服务器账号

 
打开【系统设置】中的【用户和组】,加入新用户【git】,该用户主要是提供git服务器的安全和配置环境
图1 加入新用户
 
配置Git服务器环境
 
1. 在Terminal中登陆该用户命令如下:
     ssh -l git 127.0.0.1
     或使用
     su git
 
2. 配置Git服务器路径
     现在可以用 —shared,--bare 选项运行 git init 来建立一个裸仓库,这会初始化一个不包含工作目录的仓库。
     bogon:octopus.git git$ git init —bare --shared
     Initialized empty shared Git repository in /Users/git/git.repository/octopus.git/
     bogon:octopus.git git$ ls
     HEAD          config          hooks          objects
     branches     description     info          refs
 
3. 配置访问权限
     当前笔者默认使用ssh协议(该协议比较简单并且同时支持读写),对于客户端来说,它需要有公钥才能访问ssh服务器,为此需要为【git】用户建立【.ssh】公钥文件夹。
     bogon:// git$ cd ~/.ssh
     bogon:.ssh git$ ls
     authorized_keys
     
     【authorized_keys】该文件用来给用户授权。稍后,咱们在配置用户访问时,会使用该文件。
4. 测试Git服务器
     退出该用户终端,使用当前【kuoxin】用户访问Git服务器,命令如下:
     bogon:temp kuoxin$ git clone ssh://git@127.0.0.1/Users/git/git.repository/octopus.git
     Cloning into 'octopus'...
     The authenticity of host '127.0.0.1 (127.0.0.1)' can't be established.
     RSA key fingerprint is 9e:d6:3e:4f:e5:ec:02:73:8c:3c:58:9b:d6:9b:ab:fc.
     Are you sure you want to continue connecting (yes/no)? yes
     Warning: Permanently added '127.0.0.1' (RSA) to the list of known hosts.
     Password:
     warning: You appear to have cloned an empty repository.
     Checking connectivity... done.
 
配置客户单环境
     
1. 创建客户端公钥
     当Git服务器使用ssh协议访问时,如果读写Git服务器的话,就要求有ssh安全访问,因此需要建立该用户的公钥,放入到git服务器(当前为同Mac上的不同账户模拟环境)的【.ssh】目录下,以便服务器上的ssh值守程序可以验证用户读写访问。
 
     bogon:.ssh kuoxin$ ssh-keygen
     Generating public/private rsa key pair.
     Enter file in which to save the key (/Users/kuoxin/.ssh/id_rsa): kuoxin_rsa
     Enter passphrase (empty for no passphrase):
     Enter same passphrase again:
     Your identification has been saved in kuoxin_rsa.
     Your public key has been saved in kuoxin_rsa.pub.
     The key fingerprint is:
     36:10:55:aa:9b:5b:0a:0c:b6:71:0f:ac:a7:a2:5e:97 kuoxin@bogon
     The key's randomart image is:
     +--[ RSA 2048]----+
     |      .....      |
     |       . .       |
     |      . .        |
     |   .   o        |
     |  + + . S     |
     | . B o.+ .    |
     |  o.+E+ .    |
     |. .o.. +       |
     |+o.   o        |
     +-----------------+
 
    bogon:.ssh kuoxin$ ls
    github_rsa     github_rsa.pub     known_hosts     kuoxin_rsa     kuoxin_rsa.pub
 
2. 配置客户端账号访问
     需要将新生成的kuoxin_rsa.pub文件,拷贝到git服务器上的git账号下的【.ssh】目录,并且将开发者的 SSH 公钥添加到的 authorized_keys 文件中。操作如下:
     
     列出当前【kuoxin】开发者账号下的【.ssh】路径下生成的公钥文件
     bogon:.ssh kuoxin$ ls     
     github_rsa     github_rsa.pub     known_hosts     kuoxin_rsa     kuoxin_rsa.pub
     
     由于本人使用是同机的不同账户,需要拷贝公钥到/tmp路径下
     bogon:.ssh kuoxin$ cp kuoxin_rsa.pub /tmp/
 
     把公钥加入到【git】用户的【.ssh】目录下的authorized_keys文件中,如果希望多个开发者使用该版本库,只需要要把它们逐个追加到 authorized_keys 文件尾部即可,当前就只加入kuoxin用户公钥。
     bogon:.ssh git$ cat /tmp/kuoxin_rsa.pub >> authorized_keys     
 
3.加入源代码工程到Git服务器
 
     bogon:git.repo kuoxin$ cd octopus 
  bogon:octopus kuoxin$ git init 
  bogon:octopus kuoxin$ git add . 
  bogon:octopus kuoxin$ git commit -m 'initial commit’ 
  bogon:octopus kuoxin$ git remote add origin ssh://git@127.0.0.1/Users/git/git.repository/octopus.git
  bogon:octopus kuoxin$ git push origin master
 
4.  测试工程
     我们使用sourceTree 来测试。
     
     图2 配置远程Git服务器
 
图3 导出源程序
 
 
后话
 
     1. 以上方式主要是适合小规模团队或者个人使用,对于大团队来说,还是请公司的IT来搞定比较好。
     2. Git服务器支持多种协议,如http/https, git, local, ssh
     3. Git主要是配置用户管理比较复杂,可以使用gitosis。
 
posted @ 2015-06-15 15:32  kuoxinxin  阅读(988)  评论(0编辑  收藏  举报