Ubuntu 18.04搭建Git服务器
一 前言
前面已经贴了两个链接,为什么还要再写一篇呢,因为可能由于个人能力问题,我觉得上面两篇写的都有点简略,有些地方不太好理解,并不能一次性成功搭建,所以想根据自己踩过的坑再写一篇更详细的。所以如果有用户搜到了这篇文章且看完没有成功搭建,请评论中回复让我知道原因继续完善,谢谢!
另外,本次安装不涉及权限管理,因为只是自己测试,还未用于生产环境。
二 准备环境
本次测试使用两台虚拟机,一台Ubuntu系统作为Git服务器(以下称为服务器),一台CentOS系统作为客户端(以下称为客户端)
三 配置服务器
第一步:检查服务器是否安装了ssh服务,这个没记错的话Ubuntu是自带有的,如果没有安装即可
第二步:安装git,具体方法请看官网文档,包含了Ubuntu和CentOS系统的安装方法,安装完毕在终端中执行git --version命令,如正常输出版本号,说明安装成功。
第三步:修改hsots配置,在hosts文件中将服务器的IP指向gitserver,将客户端的IP指向gitclient,如下图:

第四步:在服务器上创建git用户,
sudo useradd git
然后赋予管理员权限,即将其加到/etc/sudoers文件中,添加时参考root的配置即可
第五步:在服务器上创建代码仓库,这里我在/home/git/repo下执行命令:
git –bare init /home/git/sample.git
成功执行后在服务器上创始了sample.git文件夹,如下图:

然后将该文件夹所有者设为git,执行如下命令:
sudo chown -R git:git sample.git
到此,Ubuntu服务器的配置完毕,接下来配置客户端。
四 客户端配置
第一步:同样,在客户端确认ssh是否有安装,并安装git
第二步:修改客户端的hosts文件,将服务器的IP指向gitserver
第三步:执行ssh-keygen -t rsa命令生成密钥,如下图:

注意,不要输入文件名,一直回车就好,不要输入任何内容,全部使用默认配置,成功后会自动在用户的home目录下创建.ssh文件夹,并将生成的公钥和密钥放到这个文件夹下。这里是要设置无密码登录服务器,因为服务器的密码不可能让所有人知道,提交代码时使用密钥进行身份验证
第四步:将.ssh文件夹下生成的id_rsa.pub文件上传到服务器git用户home目录(/home/git)下,在服务器上使用git用户登录,查看home目录下是否有.ssh文件夹,如果没有,手动创建,如果有进入其中查看是否有名为authorized_keys文件,如果没有,同样手动创建即可。确认authorized_keys文件存在后执行cat ../id_rsa.pub>>authorized_keys命令,将客户端用户公钥导入到验证文件。
第五步:在客户端上新建存储代码的文件夹,进入该文件夹,执行git clone git@gitserver:/home/git/repo/sample.git命令,该命令的作用是使用git用户身份从服务器拉取代码,若可正常拉代码且无需输入密码,说明搭建成功。之后就可以像公共仓库一样进行代码管理了。
五 善后
所有用户的公钥导入完毕后,最好禁用git用户登录权限(git用户应该只用于代码管理,不用作其它事情,如果再要导入新的用户公钥可以用其它有管理员权限的帐户),具体做法是修改/etc/passwd文件中git的设置,如下图:

将命令执行环境设成git的shell,/usr/bin/git-shell而非/bin/bash,这样git用户无法通过ssh工具如putty远程登录系统了,但是可以通过ssh在git中进行各种操作。
Ubuntu 18.04搭建Git服务器的更多相关文章
- ubuntu 18.04 搭建flask服务器(大合集,个人实操)
ubuntu 18.04 搭建flask服务器(大合集) Ubuntu python flask 服务器 本次使用的Ubuntu版本为:Ubuntu 18.04.5 LTS (GNU/Linux 4. ...
- 【Ubuntu 18.04 搭建VNC服务器】
https://www.jianshu.com/p/f58fe5cdeb5f 桌面共享 Ubuntu 18.04自带桌面共享,可以将物理桌面共享给VNC.但是无法创建新的桌面. 具体参考 https: ...
- 在 Ubuntu 18.04 LTS 无头服务器上安装 Oracle VirtualBox
作者: Sk 译者: LCTT qhwdw | 2018-10-12 01:59 本教程将指导你在 Ubuntu 18.04 LTS 无头服务器上,一步一步地安装 Oracle VirtualBox. ...
- Ubuntu 18.04安装Samba服务器及配置
Ubuntu 18.04安装Samba服务器及配置 局域网下使用samba服务在Linux系统与Windows系统直接共享文件是一项很方便的操作.以Ubuntu为例配置samba服务,Linux服务器 ...
- Ubuntu 12.04 搭建TFTP服务器
吐槽先:在Ubuntu上搭建TFTP服务器,网上搜到一堆资料,可惜基本都是部分能用,至于哪些部分能用还要自己摸索着试出来,郁闷之情仅次于找不到任何资料…… ---------------------- ...
- 如何在Ubuntu 18.04安装Git
在Ubuntu 18.04安装Git 更新apt包列表 apt-get update -y apt-get upgrade -y 安装Git: apt install git 检查Git版本 git ...
- ubuntu 16.04 搭建git小型服务器
最近搭建了一个小型git服务器,由于网上资料鱼龙混杂,让我着实踩了不少地雷.做一个记录,以备不时之需. 一 搞清楚你的需求? 假如你要搭建的服务器只供几十个人使用,并且没有专门的网管服务的话,切记,一 ...
- CentOS 6.9/Ubuntu 16.04搭建OpenVPN服务器以及客户端的使用
说明: 1.发现一个很奇怪的现象,CentOS和Ubuntu有着对用户不同的管理理念,比如CentOS中安装一切软件都是以root优先(su -),而Ubuntu则以当前用户优先,安装软件以sudo开 ...
- 烂泥:ubuntu 14.04搭建OpenVPN服务器
本文由秀依林枫提供友情赞助,首发于烂泥行天下 公司分部需要连接公司内部的服务器,但是该服务器只允许公司内部的网络访问. 为了解决这个问题,打算使用VPN.对于VPN以前使用最多的是PPTP这个解决方案 ...
随机推荐
- dotNet程序员的Java爬坑之旅(二)
囉里囉唆的寫了一大堆,最後還是全刪除了.哎~ 言歸正傳,最近因爲發生了很多事情,所以更新的有嗲晚了,最近也一直在學習,但是感覺效率什麽的不是很高,這是不對的,反思一下,從這篇博文開始,打起精神吧. M ...
- linux中du与df的区别和联系
1,两者区别 du,disk usage,是通过搜索文件来计算每个文件的大小然后累加,du能看到的文件只是一些当前存在 的,没有被删除的.他计算的大小就是当前他认为存在的所有文件大小的累加和. df, ...
- RT-thread内核对象--事件集
rt-thread 线程的同步:线程同步是指多个线程通过特定的机制(如互斥量,事件对象,临界区)来控制线程之间的执行顺序 1.事件集:(可以实现一对多,多对多的同步) RT-Thread 定义的事 ...
- DWR使用总结
这两天学了下DWR,现在总结一下. DWR是方便使用AJAX连接JS和JAVA的的一个框架,把服务器端 Java 对象的方法公开给 JavaScript 代码. 如果是用dwr2.0的jar包,还 ...
- ASP.NET MVC4添加区域视图 找到多个与名为“home”的控制器匹配的类型
今天在项目中遇到一个问题,在MVC下想建立一个区域的后台Boss视图,出现了"找到多个与名为“home”的控制器匹配的类型"的问题,希望下面的解决方案能够帮助到大家 这是网站的整体 ...
- angularjs ng-bind-html的用法总结
angular中的$sanitize服务. 此服务依赖于ngSanitize模块.(这个模块需要加载angular-sanitize.js插件) 要学习这个服务,先要了解另一个指令: ng-bing- ...
- 转载两篇dedecms的漏洞修复教程
Dedecms安全步骤,安装之后的操作 1 将文件夹dede改名为其他,比如 /256256.com/ 2 搜索ad.dedecms.com,文件D:\WebSite\256256.com\www\g ...
- 连接EMC存储系统
1.准备一台笔记本电脑,一根网线即可. 2.将网线一头连接笔记本电脑,另一头连接存储.(连接存储的一头应连接到有扳手图标的那一网口上) 3.配置IP地址 IP:128.221.1.254 子网掩码:2 ...
- Git系列:第七篇-Maven项目下提交时忽略不必要的文件或文件夹
用.gitignore文件来进行忽略不必要的文件或文件夹 在开发中我们要提交的内容大都是src里的全部文件(java文件).gitignore(忽略文件)pom.xml(maven配置文件)----- ...
- 洛谷P1596 [USACO10OCT]湖计数Lake Counting
https://www.luogu.org/problemnew/show/P1596 连通块水题... 大体思路是找到是水坑的坐标然后就开始不断递归,往八个方向搜,把连在一起的都标记一遍直到找不到为 ...