搭建Git内网服务器

一般来讲,搭建自己的git服务器都是不放心将代码放到公有平台,希望在自己的内网服务器维护代码库。所以,IP基本上都是内网的IP,所以我们不妨假设内网IP是192.168.8.8

- 远程服务器端:

  1. 安装git:sudo apt-get install gitsudo yum install git
  2. 服务器端创建一个git用户,专门用于git服务:sudo adduser git
  3. 创建证书登录:收集所有需要登录的用户的公钥,就是他们自己的id_rsa.pub文件,把所有公钥导入到/home/git/.ssh/authorized_keys文件里,一行一个 。

此时,准备工作基本上完成,我们可以考虑在服务器端创建git仓库。例如,我们创建/var/git_repo目录,用于保存各个git工程。

进入这个目录cd /var/git_repo,我们创建第一个工程rollingstone.git

sudo git init --bare rollingstone.git

再更改它的权限:

$ sudo chown -R git:git rollingstone.git

进一步,可以创建第二个工程tesla.git

sudo git init --bare tesla.git

再更改它的权限:

$ sudo chown -R git:git tesla.git

这样,在/var/git_repo目录下,我们就会得到两个git文件rollingstone.gittesla.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每次一登录就自动退出。

- 客户端:

在客户端,比如我们自己的PC上,由于我们假设的内网服务器IP是192.168.8.8,我们可以使用下面的命令来客隆:

$ git clone [email protected]:/var/tesla.git

这样,你就可以在自己的PC上去修改、推送这个tesla工程了。

相关推荐