搭建自己的git服务器、配置公钥私钥(解决每次 clone push需要密码问题)

前提条件:需要自己的服务器(废话唠叨一下- -!)

服务器的系统:CentOS 7,不会ssh远程登录服务器的出门左拐百度一下咯

服务器端

第一步:安装git

 yum install -y git 

安装完成后

第二步:添加git使用的用户和密码

useradd git   #git 为你的用户名  不喜欢可以自己定义一个,但是定义后,下面的git都必须改为你对应的用户名!

passwd git    #为新用户设置密码这步一定不能跳过,跳过后面clone的时候会提示输入密码的!!密码要8位数字以上!

提示:passwd: all authentication tokens updated successfully.证明密码设置成功

第三步:创建git仓库

选择一个目录作为你的仓库 例如/srv

cd /srv  #进入创库目录

git init --bare aa.git  #初始化项目测试目录

但是该目录拥有者不是git用户,我们必须把它改为git用户:

搭建自己的git服务器、配置公钥私钥(解决每次 clone push需要密码问题)

 chown -R git:git aa.git #更改拥有者的用户,更改后:

搭建自己的git服务器、配置公钥私钥(解决每次 clone push需要密码问题)

服务器端工作暂时完成了,下面到客户端:

客户端

第一步:安装git软件 https://git-scm.com/downloads,一路next就可以安装完成了

搭建自己的git服务器、配置公钥私钥(解决每次 clone push需要密码问题)

安装完成后,打开git

搭建自己的git服务器、配置公钥私钥(解决每次 clone push需要密码问题)

第二步,设置你本地的用户名和email地址:

git config --global user.name "myname"
git config --global user.email "[email protected]"

第三步,生成公私钥:

ssh-****** -t rsa -C "[email protected]"   然后一直按enter;知道出现成功的图案:

搭建自己的git服务器、配置公钥私钥(解决每次 clone push需要密码问题)

id_rsa.pub你面的内容就是我们本电脑的公钥

搭建自己的git服务器、配置公钥私钥(解决每次 clone push需要密码问题)

复制该**到服务器端的/home/git/.ssh/authorized_keys文件中

搭建自己的git服务器、配置公钥私钥(解决每次 clone push需要密码问题)

注意:!!!!在/home/git/目录下ls -al 查看是否有.ssh目录!!

搭建自己的git服务器、配置公钥私钥(解决每次 clone push需要密码问题)

如果没有,自己新建一个.ssh目录和authorized_keys文件:

mkdir  .ssh   #创建目录

chown -R git:git .ssh  #修改拥有者

cd .ssh

 touch authorized_keys  #创建keys文件

 chmod 700 authorized_keys #修改文件权限

chown -R git:git authorized_keys#修改文件拥有者

第四步:把客户端电脑生成的**复制到authorized_keys文件中:

vim authorized_keys

然后按a,插入**,然后按ESC键,再输入  :wq    保存退出(也可以用winscp或者其他编辑器把**添加进去)

注意!!每个**占一行,如果想添加多个客户端电脑需要换行再添加下一个用户!

搭建自己的git服务器、配置公钥私钥(解决每次 clone push需要密码问题)

设置基本完成了,下面进行验证:

git clone [email protected]服务器地址:/srv/aa.git   

出现下面提示证明成功了,注意:可能第一次clone 需要密码,成功之后就不需要每次输入密码,如果每次clone 或者push都需要密码肯定上面某个步骤错了,或者git用户权限不够,**填写格式错误,**文件和.ssh放置的目录不正确,要仔细检查一下。

搭建自己的git服务器、配置公钥私钥(解决每次 clone push需要密码问题)

本人专业水平有限,有什么错漏的地方请大神们指正,非常感谢。