Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理
Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件
下面就我部署git的实践,操作环境未centos6.8,客户机是win10,因为是部署我尽量简单化部署,但是步骤不会漏掉
首先yum安装git
yum install git git --version #查看git版本 git version 1.7.1
然后我们需要创建git专用的账户和密码,注意我们创建用户在哪个目录下创建就就在/etc/passwd里面用户名定位到哪个目录
useradd git passwd git #设置git密码
接着创建git服务端仓库
mkdir -p /data/git/gittest.git git init --bare /data/git/gittest.git cd /data/git/ chown -R git:git gittest.git/
客户端远程克隆仓库(cmder操作)
d: mkdir githome #然后从linux git服务器上克隆项目 git clone git@192.168.10.10:/home/data/gittest.git
上述操作会让你输入git设置的密码,然后会在本地的githome目录下gittest仓库,目录下还有个.git文件
接着我们需要在客户机创建ssh公钥和私钥
ssh-keygen -t rsa -C "117237008@qq.com"
执行后提示一路回车,查看如下图片就是成功了
然后C:\Users\yang.su\.ssh会多两个文件,id_rsa和id_rsa.pub
known_hosts文件是刚才克隆原车给仓库的时候生成的
服务器端打开rsa认证,在sshd_config文件内打开以下三个配置
RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys
然后重启sshd服务
/etc/rc.d/init.d/sshd restart
由 AuthorizedKeysFile 得知公钥的存放路径是 .ssh/authorized_keys,实际上是 $Home/.ssh/authorized_keys,由于管理 Git 服务的用户是 git,所以实际存放公钥的路径是 /data/git/.ssh/authorized_keys
在 /data/git/ 下创建目录 .ssh
cd /data/git mkdir .ssh
然后把 .ssh 文件夹的所属用户和组修改为 git
chown -R git:git .ssh
将客户端的公钥上传到服务器目录/data/git/.ssh/下并改名authorized_keys
scp C:\Users\yang.su\.ssh\id_rsa.pub git@192.168.10.10:/data/git/.ssh/authorized_keys
修改 .ssh 目录的权限为 700
修改 .ssh/authorized_keys 文件的权限为 600
chmod -R 700 .ssh/ cd .ssh chmod 600 authorized_keys
客户端再次克隆仓库
git clone git@192.168.10.10:/data/git/gittest.git Cloning into 'gittest'... warning: You appear to have cloned an empty repository.
然后再本地githome目录下存在了gittest目录,说明项目已经被克隆了
禁止 git 用户 ssh 登录服务器
之前在服务器端创建的 git 用户不允许 ssh 登录服务器,修改/etc/passwd文件
git:x:502:504::/home/git:/bin/bash #修改为 git:x:502:504::/home/git:/bin/git-shell
此时 git 用户可以正常通过 ssh 使用 git,但无法通过 ssh 登录系统