Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >在CentOS下搭建自己的Git服务器 转

在CentOS下搭建自己的Git服务器 转

作者头像
尚浩宇
发布于 2018-08-17 02:31:52
发布于 2018-08-17 02:31:52
1K00
代码可运行
举报
文章被收录于专栏:杂烩杂烩
运行总次数:0
代码可运行

首先需要装好CentOS系统,作为测试,你可以选择装在虚拟机上,这样比较方便。这步默认你会,就不讲了。 有了CentOS,那么如何搭建Git服务器呢? 1、首先需要安装Git,可以使用yum源在线安装:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@localhost Desktop]# yum install -y git

2、创建一个git用户,用来运行git服务

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# adduser git

3、初始化git仓库:这里我们选择/data/git/learngit.git来作为我们的git仓库

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@localhost git]# git init --bare learngit.git  
Initialized empty Git repository in /data/git/learngit.git/

执行以上命令,会创建一个裸仓库,裸仓库没有工作区,因为服务器上的Git仓库纯粹是为了共享,所以不让用户直接登录到服务器上去改工作区,并且服务器上的Git仓库通常都以.git结尾。然后,把owner改为git:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@localhost git]# chown git:git learngit.git

4、在这里,Git服务器就已经搭得差不多了。下面我们在客户端clone一下远程仓库

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Zhu@XXX /E/testgit/8.34
$ git clone git@192.168.8.34:/data/git/learngit.git
Cloning into 'learngit'...
The authenticity of host '192.168.8.34 (192.168.8.34)' can't be established.
RSA key fingerprint is 2b:55:45:e7:4c:29:cc:05:33:78:03:bd:a8:cd:08:9d.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.8.34' (RSA) to the list of known hosts.
git@192.168.8.34's password:

这里两点需要注意:第一,当你第一次使用Git的clone或者push命令连接GitHub时,会得到一个警告:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
The authenticity of host 'github.com (xx.xx.xx.xx)' can't be established.
RSA key fingerprint is xx.xx.xx.xx.xx.
Are you sure you want to continue connecting (yes/no)?

这是因为Git使用SSH连接,而SSH连接在第一次验证GitHub服务器的Key时,需要你确认GitHub的Key的指纹信息是否真的来自GitHub的服务器,输入yes回车即可。

Git会输出一个警告,告诉你已经把GitHub的Key添加到本机的一个信任列表里了:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Warning: Permanently added 'github.com' (RSA) to the list of known hosts.

这个警告只会出现一次,后面的操作就不会有任何警告了。 如果你实在担心有人冒充GitHub服务器,输入yes前可以对照GitHub的RSA Key的指纹信息是否与SSH连接给出的一致。 第二,这里提示你输入密码才能clone,当然如果你知道密码,可以键入密码来进行clone,但是更为常见的方式,是利用SSH的公钥来完成验证。

5、创建SSH Key 首先在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ ssh-keygen -t rsa -C "youremail@example.com"

你需要把邮件地址换成你自己的邮件地址,然后一路回车,使用默认值即可,由于这个Key也不是用于军事目的,所以也无需设置密码。

如果一切顺利的话,可以在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。

6、Git服务器打开RSA认证 然后就可以去Git服务器上添加你的公钥用来验证你的信息了。在Git服务器上首先需要将/etc/ssh/sshd_config中将RSA认证打开,即:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1.RSAAuthentication yes     
2.PubkeyAuthentication yes     
3.AuthorizedKeysFile  .ssh/authorized_keys

这里我们可以看到公钥存放在.ssh/authorized_keys文件中。所以我们在/home/git下创建.ssh目录,然后创建authorized_keys文件,并将刚生成的公钥导入进去。

然后再次clone的时候,或者是之后push的时候,就不需要再输入密码了:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Zhu@XXX/E/testgit/8.34
$ git clone git@192.168.8.34:/data/git/learngit.git
Cloning into 'learngit'...
warning: You appear to have cloned an empty repository.
Checking connectivity... done.

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git:x:1001:1001:,,,:/home/git:/bin/bash

最后一个冒号后改为:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016/01/21 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
搭建Git服务器
在讲了远程仓库实际上和本地仓库没啥不同,纯粹为了7x24小时开机并交换大家的修改。
php007
2019/10/10
3K0
CentOS搭建Git服务器及权限管理
声明:本教程,仅作为配置的记录,细节不展开,需要您有一点linux的命令基础,仅作为配置参考。 1. 系统环境 系统: Linux:CentOS 7.2 64位 由于CentOS已经内置了OpenSSH,如果您的系统没有,请自行安装。 查看ssh版本 $ ssh -V # 输出以下表示没问题,可以继续。 版本可能不一致,能用即可。 OpenSSH_6.6.1p1, OpenSSL 1.0.1e-fips 11 Feb 2013 避免系统环境和其他的不一致,请核对您系统的版本,其他发行版请对应修改。
老马
2018/04/16
2.9K0
小组级git服务器搭建
每个需要使用git服务器的工程师,自己需要生成一个ssh公钥 进入自己的~/.ssh目录,看有没有用 文件名 和 文件名.pub 来命名的一对文件,这个 文件名 通常是 id_dsa 或者 id_rsa。 .pub 文件是公钥,另一个文件是密钥。假如没有这些文件(或者干脆连 .ssh 目录都没有),你可以用 ssh-keygen 的程序来建立它们,该程序在 Linux/Mac 系统由 SSH 包提供, 在 Windows 上则包含在 MSysGit 包里:
EltonZheng
2021/01/22
8370
Git服务器搭建简明教程
本文详解在Ubantu 16下搭建Git服务器,力求让读者知其所以然,仅需安装Git和ssh,而无需其他软件。
全栈程序员站长
2022/11/09
1.8K0
Git服务器搭建简明教程
搭建git服务器
我们都知道GitHub只有公开库是免费的,而私有仓库是需要花钱买的。所以我们可以想办法自己搭建一个私有的,仅自己公司使用的。Gitlab是个不错的选择。在介绍它之前,先讲述一下如何搭建命令行的git服务器。
端碗吹水
2020/09/23
3.1K0
搭建git服务器
Git服务器搭建
  Git是目前世界使用最广泛的分布式版本控制系统,它是由林纳斯·托瓦兹(Linus Torvalds)创作,最初的目的是为了更好地管理Linux内核开发而设计的。
那一叶随风
2018/08/22
2.8K0
Git服务器搭建
在Linux服务器(ubuntu 16)上部署并配置git
近期终于忍痛将所有的代码从SAE切换到了个人的vps,为方便代码管理,需要在服务器上部署git。为了方便后续查看,把过程简单整理总结一下。本教程基于: 服务器: $ cat /proc/version Linux version 4.8.3-x86_64-linode76 (maker@build) (gcc version 4.7.2 (Debian 4.7.2-5) ) #1 SMP Thu Oct 20 19:05:39 EDT 2016 $ lsb_release -a No L
子勰
2018/05/22
1.4K0
初学Git及简单搭建git服务器和客户端
SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作,如果在局域网还可以,带宽够大,速度够快,如果在互联网下,如果网速慢的话,就纳闷了。 Git是分布式版本控制系统,那么它就没有中央服务器的,每个人的电脑就是一个完整的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的电脑上。既然每个人的电脑都有一个完整的版本库,那多个人如何协作呢?比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。
拓荒者
2019/07/25
2.6K1
[Git] 代码管理之 Git(三)Git 服务器的搭建
我们平时使用git的时候,都是我们直接去拉取别人的仓库的代码,然后修改后提交到git服务器去,那如果我们想自己搭建自己的Git服务器该怎么做呢?
轻舞飞扬SR
2021/02/24
7060
[Git] 代码管理之 Git(三)Git 服务器的搭建
本地git链接到github
Git是分布式版本控制系统,同一个Git仓库,可以分布到不同的机器上。怎么分布呢?最早,肯定只有一台机器有一个原始版本库,此后,别的机器可以“克隆”这个原始版本库,而且每台机器的版本库其实都是一样的,并没有主次之分。
ConardLi
2019/09/08
6090
Linux上搭建自己的git仓库
紧接着会让你输入密码(会有2次确认,简短的英语很好理解的)。默认保持不输入(也是直接回车,避免每次clone代码都需要输入密码的麻烦)
Li_XiaoJin
2022/06/10
1.6K0
搭建自己的Git服务器
搭建Git服务器   让我们先看下服务器端SSH访问的配置。在这个例子中,我们使用authorized_keys的方法认证用户。我们假设你的服务器是一个标准linux发行版,比如ubuntu。   首先,你需要创建一个git用户,并在用户目录下创建一个.ssh文件夹
慕白
2018/08/03
3.4K0
搭建自己的Git服务器
Windows下git安装使用教程
git status 此命令可以让我们时刻掌握仓库当前的状态,上面的命令告诉我们,readme.txt被修改过了,但还没有准备提交的修改。
李智
2018/08/03
8K0
在centos上搭建git服务器并自动同步代码
CentOS安装Git实现多人同步开发 centos中GIT服务器搭建及使用密钥连接
拓荒者
2019/03/15
2.1K0
在centos上搭建git服务器并自动同步代码
GitHub使用操作指南
GitHub的是版本控制和协作代码托管平台。它可以让你和其他人的项目从任何地方合作。Git也是目前世界上最先进的分布式版本控制系统(没有之一)。最初编写用作Linux内核代码的管理。推出后,Git在其它项目中也取得了很大成功。Github目前已经有100多万的开发者,并且对于公共项目的托管免费。Github使得版本控制更加容易,多人协作编码变得简单。使用过SVN的同学应该知道,当没有网络的支持,开发者并没有办法提交已完成代码。Github支持离线提交,其实就是提交到本地仓库。每一个开发者clone下的项目代码都是一个完整的仓储,当远程或其他协作开发者代码无法恢复时,都可以方便使用本地的仓储进行恢复。当需要对代码进行分支时,其他版本控制软件在大量文件时会很慢,而Github几乎是瞬间完成这个操作,而且只需要一个命令即可。下面我们一步一步来搭建Github的环境(以windows操作系统为例)。
知忆
2021/06/09
8300
搭建Git服务器(二) 原
出现该提示,说明可以登录,因为git用户的shell禁止该用户登录虚拟机,所以在此输入密码后直接退出。
阿dai学长
2019/04/03
5270
【读书笔记】廖雪峰:Git教程
本文是辉哥学习廖雪峰的《Git教程》的读书笔记,把其中一些精要的命令记录了下来。这个笔记主要给辉哥自己做备忘索引,对一般人来说很难有明了的价值。建议直接点击学习廖雪峰的文章《Git教程》。
辉哥
2019/04/21
1.6K0
安装Git,并在客户端建立一个空项目并克隆
分两大步,分别在服务器端(虚拟机中的linux)和客户端(真机中的Windows)中操作
可定
2020/04/20
2K0
相关推荐
搭建Git服务器
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验