标签:根据 代码仓库 前言 rest 分布式 it服务 多个 服务端 完成
前言:作为目前世界上最先进的分布式版本控制系统,简单来说就是高端大气上档次!相关git的具体介绍,有兴趣的同学可以去搜索“廖雪峰”。廖雪峰老师将git很全面的讲解了一遍,并且从中可以根据实际的操作命令能够更好的理解git。
链接地址:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
正文:
实验环境:
centos7:172.20.6.231 #作为git的服务器端
centos7:172.20.2.240 #作为git客户端
一般来说服务器内部都有git这个命令。如果显版本低,可以自行升级。本地实验使用的是服务器内部自带的git。
服务端操作:172.20.6.231
1、创建git用户 #用来管理GIT服务,并为git用户设置密码;useradd git && passwd git
2、服务器端设置Git仓库
设置/home/data/git/gittest.git为Git仓库;
然后将Git仓库的owner修改为git
至此,git服务器搭建完成。然后我们在客户端使用git命令进行测试。
客户端 clone 远程仓库
git clone git@172.20.6.231:/home/data/git/gittest.git/
此时提示要输入git用户的密码,输入密码后即可从git服务器端拉取远程代码仓库到本地。
——————————————————————我是分割线—————————————
为了客户端能够更好的访问git仓库,因为我们使用ssh秘钥的形式远程访问Git服务器,在每次远程拉取git仓库时不需要输入密码,方便我们访问。
注:以下操作服务器端和客户端的操作均在root用户下操作,之前以为是git用户设置秘钥访问导致在git用户下创建秘钥文件访问不通。
服务器端:
开启sshd的RSD认证,打开sshd_config以下三个配置的注释:
重启sshd服务。systemctl restart sshd
由 AuthorizedKeysFile 得知公钥的存放路径是 .ssh/authorized_keys,实际上是 $Home/.ssh/authorized_keys,由于管理 Git 服务的用户是 git,所以实际存放公钥的路径是 /home/git/.ssh/authorized_keys
在 /home/git/ 下创建目录 .ssh(目录权限700,owner为git)
修改把 .ssh 文件夹的 owner 为 git (确保.ssh目录下所有文件的owner都属于git,否则可能会导致认证失败,无法获取git远程仓库)
在.ssh目录下创建authorized_keys文件(文件权限600,owner为git)
修改 .ssh 目录的权限为 700
修改 .ssh/authorized_keys 文件的权限为 600
客户端:
root用户下创建秘钥文件
ssh-keggen
将.ssh下的公钥文件内容填写至服务器端:/home/git/.ssh/authorized_keys文件内。如果有多个客户端,可以将多个客户端的公钥文件写入到/home/git/.ssh/authorized_keys文件内。
此时秘钥访问git仓库配置完成。
客户端测试秘钥方式访问:
可以看到我们在客户端本地查看到一个gittest的目录。
最后:
禁止git用户ssh登录服务器
在服务器端编辑:/etc/passwd修改git的条目为:
此时 git 用户可以正常通过 ssh 使用 git,但无法通过 ssh 登录系统。
标签:根据 代码仓库 前言 rest 分布式 it服务 多个 服务端 完成
原文地址:http://blog.51cto.com/12476193/2333313