一直以来用Git都是用的别人的服务器, 比如oschina 和github, 今天因为工作需要在自己的ubuntu上搭建了自己Git 服务器,
以下记录一些步骤和碰到的问题
1) 首先需要在ubuntu 虚拟机上安装openssh,
命令: sudo apt-getinstall openssh-server,安装SSH服务 (本人的ubuntu虚拟机早已安装了openssh拉)。
2) 安装完成以后察看一下ssh服务有没有启动起来,
命令: ps –e|grep ssh,
如果已经启动了是以下结果,
root@tqc-dev-env:/# ps -e|grep ssh
497 ? 00:00:00 sshd
2113 ? 00:00:00 ssh-agent
如果没有启动, 可以用命令
/etc/init.d/ssh start 或是 service ssh start
3)配置SSH无密码登陆,首先我们修改主机和ip配置文件:gedit /ect/hosts 即添加:
192.168.212.141 tqc-dev-env #此为服务器主机地址和用户名
192.168.1.8 Administrator/WFJIANG #Windows客户端地址和用户名
4) 创建git,用户, 用来管理运行git服务
命令: userdel -r git 删除git用户
命令: useradd git 创建git用户
命令:su git 切换到git用户
5) 在windows 客户端上配置无密码SSH登陆
在windows的git bash上(已经默认你安装了Git-1.9.5-preview20150319.exe),
使用命令:ssh-keygen –t rsa 生成密钥,在.ssh目录C:\Documents andSettings\Administrator\.ssh下,
我们可以看到id_rsa和id_rsa.pub文件,id_rsa.pub为公钥,将生成的公钥拷贝到ubuntu服务器上。
ubuntu服务器上查看/home/git/.ssh目录下是否存在authorized_kesys文件,
如果没有,可以通过touch authorized_keys创建此文件,如果连.ssh文件夹子也没有,则自己创建。
Authorized_keys创建完成后,将gitClient_01上拷贝过来的公钥id_rsa.pub的内容追加到authroized_keys中,
注意是追加到此文件中,可以使用命令cat /home/git/id_rsa.pub>>/home/git/.ssh/authorized_keys.
6)通过命令 sudo apt-get install git-core,安装git
7)建立git仓库的存储目录,命令例如: mkdir /home/GitServer/
8) 初始化服务器端仓库 :Git init –-bare /home/git/myRep.git, 初始化化仓库
9) 在windows上,通过git clone命令进行克隆ubuntu虚拟机服务器远程代码仓库,
Git clone git@tqc-dev-env:/home/git/myRep.git
10) 克隆代码的时候出现
error: insufficient permission for adding an object to repository database./objects
fatal: failed to write object
error: unpack failed: unpack-objectsabnormal exit
这是由于库的权限的问题 ,Git就会创建一个裸仓库,裸仓库没有工作区,因为服务器上的Git仓库纯粹是为了共享,
所以不让用户直接登录到服务器上去改工作区,并且服务 器上的Git仓库通常都以.git结尾。然后,把owner改为git:在git库目录下:
执行命令: chown -R git:git myRep.git 后即可成功克隆服务器仓库。