热门标签: 转载 JavaScript mysql 学习 php
主页> 杂项 >

Centos下搭建Git服务器

发布时间:2018-06-07 编辑:三石兄 标签: Git 热度:1162

在centos7.2环境下搭建Git服务器的方案

前言

由于公司几个人一起开发,需要用到Git来管理代码,避免代码冲突,因为一些原因没有用公司的服务器,便打算在自己的私人服务器上搭建一个Git服务器(其实也可以直接在Git服务商里面进行托管,但是在自己的服务里搭建也是一种尝试嘛

一开始是直接跟着廖雪峰老师的教程文档进行搭建的,其实搭建git服务器很简单,但是文档里面少了一些操作,导致我安装好的git,克隆项目的时候每次都要输入密码,而且怎么输密码都不对 ,后来各种瞎折腾,最后把服务器玩崩了

最后在网上查了好久才找到原因,重装系统后重新安装了一遍,完美运行,也没有出现要输密码的情况了,在这里把安装过程记录下来

开始安装

(这里我的服务器系统是用的 Centos7.2)

1、安装Git

$ yum install git

接下来我们 创建一个git用户,这个用户专门用来运行git服务:

$ groupadd git    //git是用户名
$ useradd git -g git     //这里的git是用户密码

2、创建证书登录

收集所有需要登录的用户的公钥,公钥位于id_rsa.pub文件中,把我们的公钥导入到/home/git/.ssh/authorized_keys文件里,一行一个。

如果没有该文件创建它:

$ cd /home/git/$ mkdir .ssh
$ chmod 755 .ssh
$ touch .ssh/authorized_keys
$ chmod 644 .ssh/authorized_keys
$  chown -R git:git .ssh    //将ssh文件授权给git用户

3、修改配置参数

在Git服务器上首先需要将/etc/ssh/sshd_config中将RSA认证打开,即:
RSAAuthentication yes     //如果开头有##字符,把##删掉
PubkeyAuthentication yes     //如果开头有##字符,把##删掉
AuthorizedKeysFile  .ssh/authorized_keys

修改配置之后,需要重启sshd

systemctl restart sshd.service

可以通过这个命令去测试SSH是否可连接:

 ssh -T git@192.168.1.85

然后在服务器,可以通过这个命令查看ssh状态

systemctl status sshd.service

                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

出于安全考虑,第一步创建的git用户不允许登录shell,这可以通过编辑/etc/passwd文件完成。找到类似下面的一行:

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

改为:

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

这样,git用户可以正常通过ssh使用git,但无法登录shell,因为我们为git用户指定的git-shell每次一登录就自动退出。

4、初始化Git仓库

首先我们选定一个目录作为Git仓库,假定是/git/demo/demo.git,在/目录下输入命令:

$ cd /
$ mkdir git
$ chown git:git git/
$ cd git
$ git init --bare demo.git
Initialized empty Git repository in /git/demo.git/

以上命令Git创建一个空仓库,服务器上的Git仓库通常都以.git结尾。然后,把仓库所属用户改为git:

$ chown -R git:git demo.git

5、克隆仓库

$ git clone git@192.168.xx.xx:/git/demo.git


至此

 Git 服务器安装完成!


Copyright © 2017-2018 三石兄博客 & 版权所有

蜀ICP备17023832号

283993