Linux 环境下 Git 服务器的搭建与基本使用(CentOS 7 版本)
服务器端:
1.安装 Git
1.1 从yum上安装git
yum –y install git
1.2 验证是否安装成功
git --version
如果显示当前版本号,说明安装成功


2.创建 Git 的专属管理账户和密码
2.1 创建 Git 账户
adduser git
2.2 设置 Git 账户的密码
passwd git
连续两次输入密码后即可

查看 Git 账户是否创建成功
cd /home && ls -al
如果有 git 说明安装成功

3. 创建测试git仓库
- 切换到git账户
su git - 进入git账号的用户主目录
cd /home/git - 在用户主目录下创建
test.git仓库的文件夹mkdir test.git && cd test.git - 在
test.git目录下初始化git仓库git init --bare
-
其中
git init --bare是在当前目录创建一个裸仓库,也就是说没有工作区的文件,直接把git仓库隐藏的文件放在当前目录下,此目录仅用于存储仓库的历史版本等数据。 -
仓库的路径为:
/home/git/test.git

4.配置账户免密码登录
4.1 创建ssh的默认目录
- 进入 git 账户的主目录
cd /home/git - 创建
.ssh的配置,如果此文件夹已经存在请忽略此步mkdir .ssh
4.2 创建校验公钥的配置文件
-
进入
.ssh目录并创建authorized_keys文件,此文件存放客户端远程访问的ssh的公钥cd /home/git/.ssh touch authorized_keys -
设置权限
chmod 700 /home/git/.ssh/ chmod 600 /home/git/.ssh/authorized_keys

5. 打开 RSA 认证
Centos 7.4 以上版本的系统请跳过
- 切换回
root用户su root

- 进入
/etc/ssh目录,编辑sshd_configcd /etc/ssh vi ssh_config

- 按
i进入插入模式,打开以下三个配置的注释(带#为注释), 按ESC退出插入模式,按:wq保存RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys- 可以通过
vim的正则搜索快速定位, 命名模式下:/RSAA
- 可以通过
保存后重启sshd服务
systemctl restart sshd

- CentOS7.4弃用RSAAuthentication支持 : https://ashub.cn/articles/21
- Linux系统下如何配置SSH_Centos7 ssh连接配置 CentOS7下安全配置 : http://www.linuxdown.net/install/config/20...
- CentOS7.4配置SSH登录密码与密钥身份验证踩坑 :https://www.cnblogs.com/Leroscox/p/9627809...
6. 禁止客户端 shell 登录
如果
git客户端可以直接通过shell使用git账户来远程登录服务器,这样是不安全的
- 在
/home/git下面创建git-shell-commands目录,并把目录的拥有者设置为git账户。可以直接用git账号登录服务器终端操作su git mkdir /home/git/git-shell-commands - 修改
/etc/passwd文件su root vim /etc/passwd可以通过
vim的正则搜索快速定位到这行:/git:x
找到下图所示内容, 其中 1000 可能是别的数字

将
git:x:1000:1000::/home/git:/bin/bash
改为
git:x:1000:1000::/home/git:/bin/git-shell
可能用到的快捷键:
- 最好不要直接改,可以先复制一行,然后注释掉一行,修改一行,保留原始的
- vim快捷键: 命令模式下:
yy复制行,p粘贴0光标到行首$到行尾x删除一个字符i进入插入模式- 修改完后退出保存:
esc进入命令模式, 输入::wq!保存退出。
服务端配置到此全部完成
客户端:
1.与服务端在同一主机下的客户端配置
1.1 安装git
由于是与服务端放在同一主机下,在安装服务端时已经安装
1.2 客户端配置
- 设置用户名和邮箱
git config --global user.name "client_username" git config --global user.email "example@mail.com" - 查看是否存在ssh keys
cd ~/.ssh

- 创建
ssh keysssh-keygen -t rsa -C "example@mail.com"碰到需要输入的地方直接按回车键,最后创建成功后的结果如下

- 将生成的文件复制到
git目录下cp /root/.ssh/id_rsa.pub /home/git/.ssh/test.pub - 将
test.pub文件中的内容追加到authorized_keys中cat test.pub >> authorized_keys
1.3 克隆仓库
- 创建本地文件夹
mkdir test_project && cd test_project - 克隆远程仓库
git clone git@ip地址:/home/git/test.git这时候,会提示克隆的仓库是空的,现在仓库的确是空的,所以没有报错

ls 查看目录下是否存在 test 文件夹,如果存在,说明克隆成功

2. 远程客户端配置(Windows 10)
2.1 安装 Windows 版 Git 工具
- 双击
Git-2.14.0-64-bit.exe运行

- 选择安装目录

- 点击
Next

- 点击
Next

- 点击
Next

- 点击
Next

- 点击
Next

8.点击 Next

9.点击 Next

10.点击 Install

等待安装完成

在桌面右键,如果显示

说明安装成功
2.2 客户端配置
- 设置用户名和邮箱
git config --global user.name "client_username" git config --global user.email "example@mail.com" - 检查是否已经拥有ssh公钥和私钥
进入目录C:\Users\你的用户名查看是否有.ssh文件夹,此文件夹下是否有如下两个文件

- 如果没有,那么用
ssh-keygen创建ssh的私钥

右键桌面,选择 Git Bash Here

- 创建
ssh keysssh-keygen -t rsa -C "example@mail.com"碰到需要输入的地方直接按回车键,最后创建成功后的结果如下

- 手动将公钥添加到服务器中,先找到
C:\Users\你的用户名.ssh\id_rsa.pub这个文件所在目录 - 在当前目录打开
Git Bash Here

- 把本地的
id_rsa.pub文件拷贝到git服务器scp ./id_rsa.pub root@你的ip地址:/home/git/.ssh/test.pub

由于上面的步骤禁止了 git客户端 shell 登录,所以这里只能使用 root 账户拷贝文件
- 登录服务器,找找上一步上传的
test.pub文件,目录为/home/git/.ssh/
9.将test.pub文件中的内容追加到authorized_keys中cat test.pub >> authorized_keys2.3 克隆仓库
- 创建本地文件夹
mkdir test_project && cd test_project - 克隆远程仓库
git clone git@ip地址:/home/git/test.git这时候,会提示克隆的仓库是空的,现在仓库的确是空的,所以没有报错

ls 查看目录下是否存在 test 文件夹,如果存在,说明克隆成功

本地提交与服务器端的拉取测试
- 在上一步克隆的
test文件夹中新建一个文件test.txt

- 在当前目录中打开
Git Bash Here,git status git add -A; git commit -m'test add' git push origin master


如果出现如上提示,说明本地提交成功
- 切换到服务器端,进入
1.3步骤中创建的文件夹下(请根据实际情况输入目录)cd /test_project/test git pull

如果出现如上提示,说明更新成功
结语
至此,整个 Git 服务的部署与使用就全部搭建完成,部署过程中使用的命令所代表的功能请自行百度,就不再一一说明了
本作品采用《CC 协议》,转载必须注明作者和本文链接
关于 LearnKu
推荐文章: