在linux上部署一个 git 服务

git 简单易用,为了一探究竟,同时知足好奇心,想深刻学习了下如何搭建git服务器。同时会简单说下步骤。linux

系统说明

  • 服务器:阿里云 ECS 服务器
  • 操做系统:CentOS Linux release 7.5.1804 (Core)
  • 相关环境:已安装 git ,熟悉 linux 基本操做。

搭建步骤

一、建立一个 git 用户专门管理 Git 仓库管理,并设置密码git

添加 git 这个用户shell

useradd git
复制代码

注:若是权限不够,可加 sudo. 我是直接使用 root 登陆,能省点麻烦。vim

添加用户密码安全

passwd git
复制代码

二、在服务器上选择/建立一个目录做为版本库存地址bash

由于有了 git 用户,我也想把库的地址放在这个用户下一块儿,因此是进入 git 用户下文件夹里。服务器

cd /home/git/

mkdir -p gitLib
复制代码

三、在这个目录下建立你新建的项目地址,并把项目进行初始化。ssh

mkdir -p gittest.git
git init --bare gittest.git
复制代码

四、更改文件权限,更改成git用户学习

chown -R git:git gittest.git/
复制代码

五、测试 clone 代码到本地测试

git clone git@server:/home/git/gitLib/gittest.git
复制代码

说明:server 是你服务器的公网 ip ,/home/git/gitLib/gittest.git 是上面建立的远程仓库路径.

再输入 git 的登陆密码就能够 clone 代码。


其实如今就已是能够算是部署完成了,可是涉及到安全性以及每次输入密码都很不爽,因此咱们须要禁止 shell 登陆,可是仍能够经过 ssh 正常使用 git。

设置ssh免密码登陆linux也是比较简单,网上不少教程。www.jianshu.com/p/e9db116fe…

禁止 shell 登陆

vim /etc/passwd
复制代码
git:x:1000:1000::/home/git:/usr/bin/bash
# 修改成
git:x:1000:1000::/home/git:/usr/bin/git-shell
复制代码

注:此处有两个地方须要注意:

  1. ssh免密码登陆教程大多都不是 git 用户的,能够根据教程把ssh免密码设置在 git 用户目录下 ,好比:/home/git/.ssh
  2. 禁止 shell 登陆,设置git-shell登陆。要留意服务器的 /usr/bin/ 是否存在 git-shell 文件命令,git-shell 随 git 安装到 git 目录下,可是没有配置在/usr/bin/下,因此须要使用软连接把 git-shell 配置到 /usr/bin/ ,或者git:x:1000:1000::/home/git:/usr/bin/git-shell 修改成服务器 git-shell 的文件路径。

总结体会:

  1. 熟悉 linux 对于一名工程师,我以为真的是必要的,目前工做中是愈来愈接触的多 linux 命令了。能深刻了解最好,最起码也要保证基础的 linux 的基本操做。
  2. 网上相关教程仍是至关多,至关广,基本上遇到的问题都不是第一个,也不会最后一个,认真搜搜找找仍是能找到方法。
  3. 固然有些教程,由于环境,版本等问题不能直接拿来主义,可是理解本质性的问题,能更直接找到问题的关键。
  4. 网上了解到,还有自动化部署相关的操做,后续须要使用到再继续写下去。
相关文章
相关标签/搜索