一、首先在自己的服务器中安装Git
具体在linux系统中安装Git与后面怎么配置这里就不提了,看这边博客:
二、在服务器端创建管理Git仓库的用户
在服务器端的命令行中输入如下语句,创建一个git用户,并设置好该用户的密码,后面我们将git仓库的权限赋给git用户
$ useradd git
$ passwd git
三、在服务器端创建git仓库
这里我们先创建了一个 /home/data/git/gittest.git 目录,再使用 git init 指令将这个目录改变为git仓库,再进入到 /home/data/git 目录下,把gittest.git仓库的拥有者换成git用户。
这里我也尝试再客户端进行git clone指令,会报错,接下去我们来解决这个问题。
虽然不能克隆仓库,但是会跳出
The authenticity of host '10.1.18.14 (10.1.18.14)' can't be established.
RSA key fingerprint is SHA256:F8hGYvUSA0C6wiOQ6fx+ddguTwxZWEuyDsPrWT7Yt60.
Are you sure you want to continue connecting (yes/no)?
这里我们输入yes,会将一些信息写入到客户端的 ~/.ssh/known_hosts 目录中,保存的内容如下:
四、在服务器端git打开RSA认证
配置文件放在了 /etc/ssh/sshd_config 中,如下图,先看看该目录下是否有该目录:
对sshd_config文件进行编辑,先看看如下的配置是否被注释,如果是将前面的 “#”删除,如下图:
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
将sshd_config修改保存后,重启服务 $ /etc/rc.d/init.d/sshd restart ,然后看配置中的 AuthorizedKeysFile 后面写着 .ssh/authorized_keys,所以得知公钥的存放路径是 .ssh/authorized_keys,实际上是 /home/.ssh/authorized_keys,由于管理 Git 服务的用户是 git,所以实际存放公钥的路径是 /home/git/.ssh/authorized_keys,我们查看该目录下在 /home/git/ 下是否有 .ssh 目录,没有则创建目录 .ssh与authorized_keys文件,创建步骤如下:
五、将客户端公钥导入服务器端 /home/git/.ssh/authorized_keys 文件
使用 $ ssh git@10.1.18.14 'cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub将客户端的公钥导入文件(注:这步在客户端中执行)
执行以后,可以在服务端的/home/git/.ssh/authorized_keys中查看是否添加公钥,如下图:
六、在客户端中克隆服务器端的仓库
在客户端中使用指令 $ git clone git@10.1.18.14:/home/data/git/gittest.git 克隆仓库到客户端中:
如上,说我克隆了一个空的仓库,说明我们克隆成功。因为那个创建后我没有放任何东西,这样子就成功搭建了Git服务器。