在 linux 上搭建自己的 git 服务器

最近遇到了 git 服务的需求 由于项目类型比较特殊 所以打算把 git 做成备份工具  但由于项目比较大 所以排除了 github 之类的公共仓库 ,只能自己搭建一个 git 服务器,资料都是有我百度而来,在这儿做一个整理,服务器是 centos 7.3

1:安装Git(已安装请绕过)

yum install git  -y 

2:安装 ssh 服务 (已安装请绕过)通过 ps -ef|grep sshd看看系统是否已经有ssh服务

yum install openssh-server openssh-client 

3:创建 git 用户

useradd git(创建名称为git的用户)
passwd git(为git用户创建密码)

4:创建git仓库存储目录和权限 

mkdir /home/git/repositories
chown git:git /home/git/repositories
chmod 755 /home/git/repositories

ps :  可根据自己的需求 更换目录  下同  

5:切换到git用户并建立服务器仓库

su git
cd /home/git/repositories  (初始化一个仓库名称为 test )
git init --bare test.git

最后在 客户端 上验证一下:

在客户端命令行输入:git clone git@***.***.**.**:/home/git/repositories/tset.git   (*  表示自己的IP )

根据提示先输入yes,然后输入密码git用户的密码(即上面设定的密码)

之后就可以在客户端看到 test 这个目录了,进入这个目录,修改这目录里面的文件,就能把修改push到服务器了

ps: 在这里我遇到了个错误 

WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!

我这里是 win7 的客户端 进入  C:UsersAdministrator.ssh  目录

编辑 known_hosts  文件   找到你的 对应IP 那几行 删掉它保存就可以了

6:上面的方法再每次提交修改到服务器的时候都会要求输入密码,比较麻烦,为了解决这个问题,可以将客户端用户ssh key写入服务器端git用户的authorized_keys文件中,具体操作

(1):在客户端shell命令行输入: ssh-keygen  ( 此处我是在 win7客户端 的 Git Bash 中输入的 )

如果是 linux 客户端 会出现 ~/.ssh/id_rsa.pub 这个公钥文件

如果是 win 客户端 则在 C:UsersAdministrator.ssh  目录

(2): 把 id_rsa.pub  文件 上传至 Git 服务器   保证git用户可读

 Git 服务器切换到 git 用户   

su  git (这一步弄清关联给谁可以省略)

输入并打印

cat id_rsa.pub >> ~/.ssh/authorized_keys   (注意两者的目录)

 在这里要弄清楚自己是要把  id_rsa.pub 文件关联给谁  正确的是关联给 git 用户 而不是 root 用户 , 这个一定要分清 , 不然会还需要输入密码 ,而且会出现其他一些莫名其妙的错误  其实只要你弄明白这点 上一步  su git 命令是可以省略的   简单来说 就是把 id_rsa.pub  文件 关联给 /home/git/.ssh/authorized_keys 文件   而不是  /root/.ssh/authorized_keys 文件

完成  , 客户端重启  Git Bash   克隆 即可看到效果

文章转载自   http://blog.csdn.net/zhuxiaoping54532/article/details/53813437

既不回头,何必不忘; 既然无缘,何须誓言; 今日种种,逝水无痕; 明夕何夕,君已陌路;
原文地址:https://www.cnblogs.com/zyjfire/p/7723611.html