1:首先我们在centos上面自己搭建git服务器,并初始化裸仓库
安装git,可以使用yum源在线安装
# yum install -y git
创建一个git用户来运行git服务
# adduser git
并给用户添加密码 ,很多博客上面并没有添加密码这一项,不是的是不是因为版本的缘故,到 最后远程链接到仓库clone的时候,需要你输入密码,而且必须要有,不能为空,我就是一 直按 照博客上面操作并没有设置用户密码,走到最后本地clone时候一直不成功,也不知道什 么原因,最后实在没办法就试试设置用户密码,然后clone成功了
#passwd git
初始化仓库 ,先创建/home/data/git/目录放置git仓库并初始化
#mkdir -p /home/data/git
#cd /home/data/git
# git init --bare project.git
执行以上命令 Git命令,会创建一个裸仓库,会生成branches config description HEAD hooks index info objects refs文件和目录。裸仓库没有工作区,因为服务器上的Git仓库纯 粹是为了共享,所以不让用户直接登录到服务器上去改工作区,并且服务器上的Git仓库通 常都以.git结尾。然后,把owner改为git
#chown -R git:git project.git
2:裸仓库建立好了,我们现在需要到客户端来进行clone,客户端与服务端进行远程链接需要创建 客户端登录证书,也就是创建ssh key文件。这里需要说一下,Linux下面自带的 有客户端功 能, Windows需要下载客户端(我直接在百度软件管家里面下载的)。首先在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果 已 经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开客户端Git Bash),创 建SSH Key(youremail@example.com也就是你自己的邮件地址):
$ ssh-keygen -t rsa -C"youremail@example.com"
然后回车,存放密钥对的地址使用默认值路径
查看Linux下面主目录有一个.ssh隐藏文件(Windows在c盘administrator下面),进去之后里面有 id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,id_rsa.pub 是 公 钥
Git服务器打开RSA认证 ,进入到 /etc/ssh查看(cat)sshd_config内容有 1.RSAAuthentication yes 2.PubkeyAuthentication yes 3.AuthorizedKeysFile .ssh/authorized_keys,说明公钥存放在.ssh/authorized_keys文件中,所以我们在/home/git下创 建.ssh目录(这里的。ssh文件和客户端存放密钥对文件不是同一个),然后创建 authorized_keys文 件,并将刚生成的公钥导入进去(客户端的直接复制进去保存就可以)
# cd /home/git
# mkdir .ssh #cp -a ~/.ssh/id_rsa.pub /home/git/.ssh/authorized_keys
#chmod755/home/git/.ssh/authorized_keys
3:客户端clone仓库
在自己所需要的目录下面 (ip 是指链接服务器的IP ,/home/data/git/project.git仓库地址)
执行 git clone git@ip:/home/data/git/project.git
这里两点需要注意:第一,当你第一次使用Git的clone或者push命令连接仓库时,会得到一个警 告,这是因为Git使用SSH连接,而SSH连接在第一次验证Git服务器的Key时,需要你确认Git的Key的指纹信息是否真的来自GitHub的服务器,输入yes回车即可,Git会输出一个警告,告诉你 已经把GitHub的Key添加到本机的一个信任列表里了
4:执行完之后查看执行clone命令的目录中有了一个project文件夹,到这里就完成了
网友评论