搭建git服务器—创建本地git仓库

参考资料:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/00137583770360579bc4b458f044ce7afed3df579123eca000

http://blog.csdn.net/u014621130/article/details/70676754

局域网内搭建内部小型git仓库(本办法只适用于少人的小团队搭建属于自己内部的git服务器)
服务器系统为Ubuntu 17.04
系统超级用户默认为root,普通用户为locus(假定密码为locus123456)
第一步:安装git
1.可以直接通过命令:sudo su 切换到root下安装,命令是apt-get install git
2.也可以直接在locus用户下安装:sudo apt-get install git
注:如果在第一种模式下不需要加sudo命令,反之第二种模式则需要,以下不再解释

第二步:创建一个用户,用来运行git服务,此处使用名词“git”创建该用户
命令:sudo adduser git
假定密码为git123456

第三步,创建证书登录:收集所有需要登录的用户的公钥,就是他们自己的id_rsa.pub文件,把所有公钥导入到/home/git/.ssh/authorized_keys文件里,一行一个。(这个操作只要是实现免密访问git)

1.如果你是Windows系统则需要安装git bash,命令:ssh-keygen,产生RSA密钥对,一般存放在C:\Users\Administrator.ssh 里面,打开会有id_rsa 和 id_rsa.pub(公钥) 两个文件,用记事本方式打开 id_rsa.pub,并复制里面的密钥给团队管理git仓库的成员进行添加到到/home/git/.ssh/authorized_keys文件里

2.如果你是Linux用户,同样使用命令:ssh-keygen,(连续按回车键,表示使用私钥时不输入口令),产生密钥,并使用命令查看:sudo cat /home/locus/.ssh/id_rsa.pub,然后复制密钥到/home/git/.ssh/authorized_keys文件里

3.如果没有该文件则需要创建它
3.1通过命令:su git 切换到git模式下
su git
mkdir /home/git/.ssh
touch /home/git/.ssh/authorized_keys
3.2 不在git模式下的创建(可能会存在权限问题)
cd /home/git
mkdir .ssh
chmod 700 .ssh
touch .ssh/authorized_keys
chmod 600 .ssh/authorized_keys
创建完之后查看.ssh和authorized_keys文件的权限(如图),记得要在root用户下查看
搭建git服务器—创建本地git仓库_第1张图片

搭建git服务器—创建本地git仓库_第2张图片

然后查看/home/git是否属于git用户所有,且权限为755(如图),3.1和3.2都需要查看权限问题哦!
搭建git服务器—创建本地git仓库_第3张图片

最后需要将/etc/ssh/sshd_config(如果没有此文件的话,此处应该先让主机安装并启动ssh服务,http://jingyan.baidu.com/article/9c69d48fb9fd7b13c8024e6b.html)中将RSA认证打开(如果存在就直接去掉“#”,否则手动添加),该文件只有在root下有写权限,最好切换到root下修改(如图)
这里写图片描述

第四步,初始化git仓库,首先选定一个目录作为git仓库,假定是/srv/test.git,在/srv 目录下输入命令创建一个裸的仓库。git仓库通常以.git结尾,所以我们要仓库里所有文件的所有者和所属组都修改为git:
sudo git init –bare test.git
sudo chown -R git:git test.git
第五步,禁用shell登陆git
出于安全考虑,第二步创建的git用户不允许通过shell进行登录,这可以通过编辑/etc/passwd文件(最好切换到root,因为只有root才有写权限)完成。找到类似下面的一行:
这里写图片描述

改为

第六步,克隆远程仓库,团队的每个成员在自己的电脑上操作
命令:git clone git@server:/srv/test.git
用户@用户主机,git是用户,server是git所在主机的IP
例:git clone [email protected]:/srv/test.git
如果团队成员都在同一局域网内则可以通过修改文件/etc/hosts 改变host,使主机直接指向git服务器
这里写图片描述

至此,一个内部的git服务器基本搭建完毕

你可能感兴趣的:(git服务器)