1.1 查看版本信息
使用连接工具连接你的服务器,查看内核版本和Linux版本
查看内核版本: cat /proc/version
查看Linux版本: cat /etc/redhat-release
我这边的版本是centos7
1.2 服务端
1.2.1下载安装
从依赖库上安装
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
yum install gcc perl-ExtUtils-MakeMaker
查看git版本信息
git --version
1.2.2 创建用户
自定义Centos下用户,自定义账号密码
useradd git
passwd git
1.2.3 禁止使用shell登录系统(为了安全性)
vi /etc/passwd
按i进入编辑模式,在最后一行将git用户修改成以下配置
git:x:1000:1000::/home/git:/usr/bin/git-shell
按ESC退出编辑模式,输入":wq"保存并退出vi模式
1.2.4 配置远程仓库
(1)创建一个空仓库
选择路径,在路径/home/git创建一个git仓库
cd /home
mkdir git
cd git
git init --bare gitTestProject.git
此时,空仓库已经创建成功,仓库的路径为: /home/git/gitTestProject.git
(2)赋予权限
//chown -R 用户名:组名 文件
chown -R git:git gitTestProject.git
1.2.5 打开RSA认证
进入/etc/ssh目录,去掉下面三个配置的注释
//在ssh_config中
RSAAuthentication yes
//在sshd_config中
PubkeyAuthentication yes
//在sshd_config中
AuthorizedKeysFile .ssh/authorized_keys
cd /etc/ssh
vi ssh_config
vi sshd_config
按i进入编辑模式,取消注释后按ESC退出,输入":wq"保存
保存完成后重启sshd服务
/etc/rc.d/init.d/sshd restart
如果上述命令出现错误
可以尝试以下命令:
service sshd restart
至此,服务器客户端配置git完成
1.3 客户端
1.3.1 安装git
在Linux上安装git参考服务端安装步骤,在Windows上安装百度教程
参考地址: https://blog.csdn.net/qq_39377418/article/details/95199800
1.3.2 配置秘钥
右键鼠标打开git bash,输入如下
//yourEmail.com是你的邮箱
ssh-keygen -t rsa -C "yourEmail.com"
一直enter下去
此时我们已经创建了一个公钥和秘钥,id_rsa是秘钥,id_rsa.pub是公钥,公钥可以公开但是秘钥不可以
公钥和秘钥两个文件存在于.ssh文件夹中,路径为: C:\Users\WinterBluestar\.ssh
1.3.3 添加公钥到服务器
将公钥添加到服务器上有以下两种方法,一种是通过命令添加,一种是手动添加
如下所示:
(1)通过客户端命令将本地公钥添加到服务器上
在git bash输入以下命令(ip地址换成你Git服务器的地址):
ssh git@221.226.9.87 'cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub
(2)手动将本地公钥添加到服务器上
已经知道了公钥在本地的位置,C:\Users\WinterBluestar\.ssh,使用记事本或者其他方式打开
Ctrl+A全选,Ctrl+C复制
进入到/home/git目录中
cd /home/git
mkdir .ssh
vi authorized_keys
按i进入编辑模式,将刚刚复制的内容粘贴进来,按ESC退出编辑模式,输入":wq"保存并退出
使用命令:cat authorized_keys可以查看
通过以上两种方式都可以将本地的公钥添加到服务器中
1.3.4 克隆远程仓库
(1)创建本地文件夹
在本地创建一个空的git仓库文件夹,假如我创建在D盘的gitTest,路径为:
D:\gitTest
(2)克隆远程仓库
//端口在22的情况下
git clone git@221.226.9.87:/home/git/LearnProject.git
//端口在非22的情况下(如10022)
git clone ssh://git@221.226.9.87:10022/home/git/LearnProject.git
这时候,bash会发出警告提示克隆的仓库是空的
至此,服务器搭建git以及远程仓库的克隆完成