Linux学习笔记——搭建Git服务器

GitHub就是一个免费托管开源代码的远程仓库。但是对于某些视源代码如生命的商业公司来说,既不想公开源代码,又舍不得给GitHub交保护费,那就只能自己搭建一台Git服务器作为私有仓库使用。

服务机操作步骤如下:

一、安装git和ssh协议客户/服务软件

$ sudo apt install git openssh-server openssh-client

(安装openssh-server和openssh-client是由于git需要通过ssh协议来在服务器与客户端之间传输文件)


二、系统创建一个用户并设置git管理者及邮箱,用来管理git服务

$ sudo adduser AdminName
$ git config --global user.name "AdminName"
$ git config --global user.email "email@example.com"

三、创建ssh key,因为git服务器与用户间的文件传输是通过ssh协议加密的

$ ssh-keygen -t rsa -C "email@example.com"

该命令执行后可以在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,即私钥和公钥。

四、初始化Git服务器仓库

假定repositories作为Git目录,下面命令在该目录下新建一个git仓库

$ sudo mkdir /home/AdminName/repositories
$ sudo git init --bare /home/AdminName/repositories/reponame.git

五、修改Git目录和Git仓库到指定权限,否则客户机无法通过ssh协议访问Git服务器上的文件

$ sudo chmod 700 /home/AdminName/repositories
$ sudo chmod 777 -R /home/AdminName/repositories/reponame.git

六、安全设置

出于安全考虑,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每次一登录就自动退出。


七、公钥管理

如果团队很小,把每个允许访问的人的公钥收集起来放到服务器的/home/git/.ssh/authorized_keys文件里(需自己创建)就可以了。如果团队有几百号人,就没法这么玩了,这时,可以用Gitosis来管理公钥,这个就不细说了。


客户机操作步骤如下:

$ git clone AdminName@ip:repositories/reponame.git


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值