CentOS git服务器搭建

12 篇文章 0 订阅
2 篇文章 0 订阅

可以使用whereis git等命令来检查是否已经安装了git版本的
这里写图片描述
有可以用git --version 使用这个命令看到的版本比较清楚。
这里写图片描述

想要卸载 git 可以使用 yum remove git

这里写图片描述
因为我原先已经安装了git所以现在需要先卸载一下,方便等下安装的过程中截图。然后顺便说一下卸载。

安装git

在CentOS中安装git其实也很简单只要用以下yum命令即可
yum install git
这里写图片描述
然后给git 创建一个用户也可以使用当前登陆的用户作为git用户,但是为了方便管理我们还是给git创建一个新用户。
创建git用户组:
groupadd git

创建git用户 :
useradd git -g git
这里写图片描述
如果没有任何输出表示创建成功
然后在/home/ 目录下会自动创建一个 git 用户目录我们需要在git用户目录下创建.ssh 证书目录
先 cd 到git 用户目录
这里写图片描述
创建证书目录和公钥文件authorized_keys 服务器上使用 authorized_keys 文件来管理所有用户的 SSH 公钥。只有那些有公钥存放在这个文件下的用户才能正常使用这个git服务器否则每次推送或拉代码都需要输入一次用户名密码。

mkdir .ssh
chmod 744 .ssh
touch .ssh/authorized_keys
chmod 644 .ssh/authorized_keys

这里写图片描述

还有一件事情需要提醒你的是.ssh文件和authorized_keys文件创建后同样需要更改用户和用户组。
要不然创建之后是root的用户(因为我现在是用root用户) 的文件只有root才有权限才能读取,造成公钥不能用。

chown git:git .ssh
chown git:git .ssh/authorized_keys

这里写图片描述
然后把用户的公钥都上传到服务器上在用以下命令追加到 authorized_keys 文件

cat ~/id_rsa.pub >> ~/.ssh/authorized_keys

还可以使用远程操作的方法,使用 ssh-copy-id 命令。我比较喜欢这种方法,因为比较省事。
现在假设你在本地已经安装好了git,然后点击鼠标选择 Git Bash Here
这里写图片描述
打开Git Bash Here后进入你的.ssh目录
输入以下命令

;xxx.xxx.xxx.xxx是你的ip地址或域名也可以
;git 是你的用户名
ssh-copy-id -i id_rsa.pub git@xxx.xxx.xxx.xxx

这里写图片描述
这是我创建.shh文件和证书后没有改创建用户和用户组后报的错
这里写图片描述
创建好后.ssh证书文件给的权限是744 。authorized_keys 是644。
authorized_keys 证书存放公钥规则是一次回车算一个。
例如:
这里写图片描述

初始化Git仓库

选择一个文件夹存放git仓库,或是创建一个文件夹。我这里在/var/www/html/gittest目录下然后修改gittest的用户和用户组

mkdir /var/www/html/gittest
cd /var/www/html/gittest
chown git:git ../gittest/

这里写图片描述
初始化git仓库

git init --bare test.git

这里写图片描述

安全问题

用户禁止shell登录、允许git登录
为了安全要禁止git用户登录shell,可以通过修改配置文件/etc/passwd
打开 /etc/passwd 文件, 你将看到所有用户及其使用的 Shell, 会有很多行类似这样的内容, 每行是一个用户。

vim /etc/passwd找到刚才创建的用户名git:

git:x:1001:1001::/home/git:/bin/bash

这里写图片描述
将其改成

git:x:1001:1001::/home/git:/bin/git-shell

需要提醒以下的是禁止shell登录后git用户就无法使用ssh-copy-id进行Key的登记了,但可以使用root或是别的shell用户,然后authorized_keys文件用chown 把用户和用户组改成git

这里写图片描述
注意:
就算你现在已经配置好了公钥现在还不能正常从远程把git库拉下来,还需要配置一下sshd否则会有提示需要输入密码。
这里写图片描述
配置sshd_config文件,并重启:
sshd_config位于/etc/ssh/ 目录,需要使用root权限
su root 然后输入密码如果当前就算root这步省略
vim sshd_config
找到以下三像
RSAAuthentication yes #能设置是否使用RSA算法进行安全验证。

PubkeyAuthentication yes #开启公匙认证

StricModes no #ssh在接收登录请求之前是否检查用户根目录和rhosts文件的权限和所有权,建议yes
最基本的配置信息就是以上三个这里是我在网上找到的对ssh配置做了些整理的文章有兴趣可以去看看。
https://blog.csdn.net/qq624202120/article/details/60468705

克隆仓库

先cd 到你想要创建项目的地方然后输入:

 git clone git@192.168.56.1:/var/www/html/gittest/test.git

这里写图片描述
就这样一个完整的git服务器就搭建好了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值