linux下git环境搭建

搭建环境:

服务器 CentOS7.4 git(version 1.8.3.1)
客户端 Windows8 git(version 2.19.1)

1. 安装Git相关软件

Linux是服务器端系统,Windows作为客户端系统,分别安装Git。

#linux环境下安装服务端:

yum install -y git

#安装完毕后查看版本

git --version

在这里插入图片描述

下载 Git for Windows,地址:https://git-for-windows.github.io/

win版安装完之后,可以使用Git Bash作为命令行客户端。

注意:如果直接下一步下一步安装的话,默认路径会生成在桌面,建议修改安装路径地址!!

右键桌面,找到git bash选项
linux下git环境搭建_第1张图片

git --version
git version 2.19.1.windows.1    //安装完之后,查看Git版本

linux下git环境搭建_第2张图片

服务器端(linux下)安装Gitosis
git clone https://github.com/res0nat0r/gitosis.git
linux下git环境搭建_第3张图片

yum install python-setuptools -y
cd gitosis

在这里插入图片描述

python setup.py install

出现下面的信息表示安装成功了
linux下git环境搭建_第4张图片

2. 服务器端创建git用户来管理Git服务(linux下)

查看git用户是否存在

id git

在这里插入图片描述

创建git用户**(特别注意,这里git用户建议一定要用强密码,否则就会出现后面的情况,我这里的测试环境用123作为密码,生成环境切不可!!!!!!!!!)**

useradd git
echo "123" | passwd --stdin git
su - git  

3. 配置公钥

Windows

配置管理者,git服务器需要一些管理者,通过上传开发者机器的公钥到服务器,添加成为git服务器的管理者,打开git命令行
#生成公匙

ssh-keygen -t rsa

linux下git环境搭建_第5张图片

#复制到git服务器上

scp ~/.ssh/id_rsa.pub [email protected]:~  

linux下git环境搭建_第6张图片

4. 配置gitosis ( linux上)

使用git用户并初始化gitosis

cd .ssh
gitosis-init < ./id_rsa.pub

在这里插入图片描述

#添加权限

chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update

在Windows上机器上clone gitosis-admin到管理者主机(以下在win机器上操作)

说明:gitosis.conf: git服务器配置文件
keydir: 存放客户端公钥

git clone ssh://[email protected]:22/home/git/repositories/gitosis-admin.git

linux下git环境搭建_第7张图片

cd gitosis-admin
ls

在这里插入图片描述
配置gitosis.conf文件

vim gitosis.conf
[group gitosis-admin]    #组名称
members = git@iz2ze6pdfsjapodlijunstz    #组成员
writable = gitosis-admin    #项目名称

[group test]   //这里添加了"test"项目组,上传到个git服务器
members = git@iz2ze6pdfsjapodlijunstz
writable = test

linux下git环境搭建_第8张图片

在 /home/git/ 下创建目录 .ssh****(linux下)****

pwd /home/git
mkdir .ssh
 ls -a 

确认 .ssh 文件夹的 owner 修改为 git

 ll -a

linux下git环境搭建_第9张图片

5.将客户端公钥导入服务器端 /home/git/.ssh/authorized_keys 文件(win下)

回到 Git Bash 下,导入文件:

ssh [email protected] 'cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub

需要输入服务器端 git 用户的密码
在这里插入图片描述

回到服务器端(linux),查看 .ssh 下是否存在 authorized_keys 文件:

cd .ssh
 ll

可以查看一下是否是客户端生成的公钥。
linux下git环境搭建_第10张图片

重要:
修改 .ssh 目录的权限为 700
修改 .ssh/authorized_keys 文件的权限为 600
linux下git环境搭建_第11张图片

6.客户端再次 clone 远程仓库(win)

git clone [email protected]:/home/git/repositories/gitosis-admin.git

查看客户端项目目录:
linux下git环境搭建_第12张图片
项目已经 clone 了。

也可以使用 tortoiseGit 客户端来管理项目:
linux下git环境搭建_第13张图片

linux下git环境搭建_第14张图片
linux下git环境搭建_第15张图片

7.linux服务器禁止 git 用户 ssh 登录服务器!!必须做

之前在服务器端(linux)创建的 git 用户不允许 ssh 登录服务器

编辑 /etc/passwd

vi /etc/passwd

在这里插入图片描述
找到:

git:x:502:504::/home/git:/bin/bash

修改为

git:x:502:504::/home/git:/bin/git-shell

此时 git 用户可以正常通过 ssh 使用 git,但无法通过 ssh 登录系统。

8.到此git服务器就搭建完毕了,此 URL是git的命令大全http://t.cn/RCwqbg9,可进行参考使用。

9.注意事项

(1)由于搭建git既涉及到服务端,又涉及到客户端,所以在搭建的时候一定要注意哪步是在Linux下搭建的,哪步是在win下操作的!!!!!这里我为了方便大家区分,每一步都标明了是在那个环境下执行操作!请仔细查看!~~~~~

(2)第七步服务器禁止 git 用户 ssh 登录服务器必须要做(如果你的git放在了网上,一定要必须做此操作),为什么吗??好吧,我告诉你,我的测试环境仅仅是在阿里云上面的测试环境中搭建的,好吗,这就有闲着蛋疼的人开始了,我猜他们一定是没什么事干。
见图:
linux下git环境搭建_第16张图片
大半夜2点多在暴力破解我的git用户(当时手机的短信一直哇哇的告警啊。。。。),还好我这仅仅是测试环境,还好我做了安全防护的内容,如果这是你的真实环境,那想想会有什么后果呢?????

好,git的搭建就讲到这里!~~~~~

你可能感兴趣的:(gitlab)