Linux CentOS7.4 搭建git环境

1、git安装

	yum install -y git

2、创建git用户

	adduser git

3、设置git用户登录方式 限于git-shell方式

	vim /etc/passwd

  修改内容:

	git:x:1000:1000::/home/git:/bin/bash     //原始
	git:x:1000:1000::/home/git:/bin/git-shell  //修改后

4、设置git用户目录权限(配置公钥无效很可能是没有做这一步)

	cd /home/git    //进入git目录
	
	mkdir .ssh  	//创建.ssh文件夹
	
	chmod 700 .ssh  //只允许本用户和root用户拥有读、写、执行权限。
	
	cd .ssh    //进入.ssh目录
	
	touch authorized_keys	//用于添加公钥列表
	
	chmod 600 authorized_keys //只允许本用户和root用户拥有读、写权限。
	
	cd /home	//返回home目录
	
	chown -R git:git git  //	将git文件夹的用户名和组名都改为git

5、客户端生成秘钥
  客户端先安装git

	ssh-keygen -t rsa -C "[email protected]"

  一路回车之后会在用户文件夹中的.ssh文件夹中生成公钥和秘钥id_rsa 、id_rsa.pub 两个文件。

6、服务端添加公钥
  将公钥id_ras.pub的内容复制到服务器的 /home/git/.ssh/authorized_keys中,如有多个公钥,一行添加一个。

  注意:是/home/git目录下的.ssh,不是root下的。因为我们是用git用户来登录主机,所以要在git目录下配置。同理,如果使用root免密登录,则在root目录下的.ssh配置。

  前车之鉴:之前我就因为一直在root下的.ssh/authorized_keys里面添加公钥,每次使用git命令都需要密码,后来才发现是这个问题。

7、设置免密登录,配置 ssh_config

	vim /etc/ssh/ssh_config       //编辑ssh配置文件
	//去掉注释#
	RSAAuthentication yes          //启用 RSA 认证
	PubkeyAuthentication yes	   //启用公钥认证
    
    systemctl restart sshd            //重启ssh

8、设置root免密登录方式
  将之前的客户端的公钥再放到 root/.ssh/authorized_keys中就可以,原理同git的免密登录,登录的时候使用秘钥的登录方式。

9、建立git仓库目录

  在home目录下新建一个gitrepo文件夹作为git仓库的储存室(位置根据自己选择)

	cd /home
	mkdir gitrepo			//创建git仓库目录
	chown git:git gitrepo   //将此文件夹归为git用户所有

10、创建第一个git仓库

	cd gitrepo
	git init --bare test.git   //创建一个裸仓库
	chown -R git:git test.git  //将仓库归为git所有

11、客户端拉取仓库内容

	git clone git@公网ip:/home/gitrepo/test.git   //ssh方式连接

结语:
  整体看起来搭建git环境没有太大的复杂性,主要中间几个地方有一些坑,理清楚思路和找到坑的解决方案就好了。

思路:
  1、安装git
  2、设置git用户目录权限
  3、客户端生成秘钥,服务器添加公钥
  4、配置ssh_config
  5、创建仓库,改变所有者
  6、拉取代码

你可能感兴趣的:(Linux)