centos7+windows 搭建git

Git是什么?

Git是目前世界上最先进的分布式版本控制系统,有极其强大的分支管理,详细或与SVN等集中版本控制区别,请自行百度。

服务端

1. 检查并卸载

 	 git --version
 	 yum remove git

2. 安装

  	yum install -y git

3. 创建管理Git服务的组和用户(非必须步骤)

	groupadd git  			#创建用户组
	id git					#检查该用户是否存在
	useradd git -g git 		#创建用户,并将该用户分配到git组下
	passwd git 				#为该用户设置密码
	su git					#切换到git用户,这里若不切换,后面会设计到权限问题,很麻烦

4. 创建一个裸仓库

	mkdir /home/git/git.git 			#创建一个git.git目录
	git init --bare /home/git/git.git	#将该目录初始化一个空仓库
	chown -R git:git /home/git/git.git	#改变该目录的所有者和组(若已切换到git用户,则不需要此操作)

5. 修改ssh配置(免密登录)

	su 									 #切换回root用户(默认root用户才有权限)
	vim /etc/ssh/sshd_config			 #进入该配置,i编辑 esc退出编辑 q关闭文件 q!强制关闭文件 wq保存编辑内存并关闭文件

修改以下配置:

	RSAAuthentication yes					#秘钥认证(centos7.4及以上,该配置默认开启)
	PubkeyAuthentication yes				#允许密码认证
	AuthorizedKeysFile .ssh/authorized_keys	#公钥存放路径
	systemctl restart sshd.service		#重启ssh服务
	su git

注:AuthorizedKeysFile 得知公钥的存放路径是 .ssh/authorized_keys,实际上是 $Home/.ssh/authorized_keys,由于管理 Git 服务的用户是 git,所以实际存放公钥的路径是 /home/git/.ssh/authorized_keys

创建公钥文件:

	mkdir /home/git/.ssh					#在对应用户下创建.ssh隐藏目录
	ls	-a									#查看隐藏文件或目录
	chown -R git:git /home/git/.ssh			#改变该目录的所有者和组(若已切换到git用户,则不需要此操作)
	ll -a									#查看目录或文件详细信息
	touch /home/git/.ssh/authorized_keys	#创建公钥文件authorized_keys	
	chmod 700 /home/git/.ssh				#将.shh目录权限设置为700
	chmod 600 /home/git/.ssh/authorized_keys#将公钥文件权限设置为600

6. 禁止 git 用户 ssh 登录服务器(建议在全部搭建完成后执行该步骤,不然后面将不能切换到git用户

服务器端创建的 git 用户不允许 ssh 登录服务器

	su
	vim /etc/passwd   


git:x :502:504::/home/git:/bin/bash
修改为
git:x :502:504:, , ,:/home/git:/usr/bin/git-shell

此时 git 用户可以正常通过 ssh 使用 git,但无法通过 ssh 登录系统。

客户端

1. 安装
下载 Git for Windows:Git Bash
安装完之后,可以使用 Git Bash 作为命令行客户端。

centos客户端安装和服务端安装一样

2. 生成公钥秘钥(免密登录)

检查密钥文件 (已存在,跳过)

 cd ~/.ssh

注册用户及邮箱
因为Git是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和Email地址
–global参数,表示这台机器上所有的Git仓库都会使用这个配置

 git config --global user.name "user.name"
 git config --global user.email "yourmail@youremail.com.cn"

创建密钥文件

 	ssh-keygen -t rsa -C "yourmail@youremail.com"

此时 C:\Users\用户名.ssh 下会生成两个文件
id_rsa 私钥
id_rsa.pub 公钥

3.将客户端公钥导入服务器

	ssh git@127.0.0.1 [-p ssh端口] 'cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub
	#[-p ssh端口] 当ssh不是默认端口22时,需指定端口号

若有多个客户端,则每个客户端都需要将公钥配置到服务器,一行一个


搭建完成,即可进行git的一系列操作

当第一次关联服务端远程仓库时,首先得将远程仓库版本克隆到本地

	git clone [-b 分支] [ssh://]git@127.0.0.1:[ssh端口]/home/git/git.git 
	#克隆服务器仓库到本地
	#[-b 分支] 克隆指定分支,默认master
	#[ssh://] 如果非默认端口22 则需指定

克隆到本地后,就可以进行一些推送等操作

当第一次连接到目标 Git 服务端时会得到一个提示:

The authenticity of host ‘127.0.0.1 (127.0.0.1)’ can’t be
established.RSA key fingerprint is
SHA256:Ve6WV/SCA059EqoUOzbFoZdfmMh3B259nigfmvdadqQ.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.

此时 C:\Users\用户名.ssh 下会多出一个known_hosts文件,该文件中记录了我们所访问服务器的公钥,当下次再进行连接时,就通过该公钥进行比对,若比对时出现如下错误:

WARNING: REMOTE HOST
IDENTIFICATION HAS CHANGED!

表示公钥已经失效,则需重新写入新的公钥(删除文件,自动生成)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值