一、1.环境准备,1台Ubuntu系统的服务器(PC),1台用于客户端的自用PC,客户端PC安装了Sourcetree软件。

二、Ubuntu服务器配置:

1、安装git;

$ sudo apt-get install git

 

2、创建git账户;

ubuntu 服务器 gitlab 代码 ubuntu搭建git服务器_ubuntu

 

3、将账户切换到git用户下面运行,在git用户下通过终端建立.ssh文件与authorized_keys文件目录;

$ cd
$ mkdir .ssh && chmod 700 .ssh
$ touch .ssh/authorized_keys && chmod 600 .ssh/authorized_keys

ubuntu 服务器 gitlab 代码 ubuntu搭建git服务器_git_02

 

4、为系统用户git中的authorized_keys文件添加一些开发者SSH公钥。将要添加的若干公钥保存到临时文件夹tmp中去,查看这些公钥如下:

$ cat /tmp/id_rsa.xxxx.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCB007n/ww+ouN4gSLKssMxXnBOvf9LGt4L
ojG6rs6hPB09j9R/T17/x4lhJA0F3FR1rP6kYBRsWj2aThGw6HXLm9/5zytK6Ztg3RPKK+4k
Yjh6541NYsnEAZuXz0jTTyAUfrtU3Z5E003C4oxOj6H0rfIF1kKI9MAQLMdpGW1GYEIgS9Ez
Sdfd8AcCIicTDWbqLAcU4UpkaX8KyGlLwsNuuGztobF8m72ALC/nLF6JLtPofwFBlgc+myiv
O7TCUSBdLQlgMVOFq1I2uPWQOkOWQAHukEOmfjy2jctxSDBQ220ymjaNsHT4kgtZg2AYYgPq
dAv8JggJICUvax2T9va5 gsg-keypair

 

5、将这些公钥加入系统用户 git 的 .ssh 目录下 authorized_keys 文件的末尾:

$ cat /tmp/id_rsa.john.pub >> ~/.ssh/authorized_keys
$ cat /tmp/id_rsa.josie.pub >> ~/.ssh/authorized_keys
$ cat /tmp/id_rsa.jessica.pub >> ~/.ssh/authorized_keys

ubuntu 服务器 gitlab 代码 ubuntu搭建git服务器_git_03

 

6、现在我们来为开发者新建一个空仓库。可以借助带 --bare 选项的 git init 命令来做到这一点,该命令在初始化仓库时不会创建工作目录:

$ cd /srv
$ sudo mkdir git
$ cd git
$ sudo mkdir project.git
$ cd project.git
$ sudo git init --bare
已初始化空的 Git 仓库与 /srv/git/project.git/

返回上一个文件夹目录即 /srv/git$下运行:

$ sudo chown -R git:git project.git

 到此服务器端的对于git相关配置基本完成,下面是开始配置连接相关。

 

7、在服务器git用户下终端中查询ip与ssh服务是否存在

$ ifconfig

 如果提示"not found",则利用指令 $sudo apt install net-tools进行安装后再查询ip;

确认ssh服务是否开启,发送 $ sudo ps -e |grep ssh 来查询是否安装sshd服务,没有的话请安装,安装方法:

如果已经安装,在同一网络下,用客户端PC上使用PuTTy软件进行连接服务器端,(用户名为服务器端git用户,密码为服务器端git用户的登录密码);

ubuntu 服务器 gitlab 代码 ubuntu搭建git服务器_git_04

ubuntu 服务器 gitlab 代码 ubuntu搭建git服务器_git_05

 

8、上一步成功后,证明连接成功,下面可利用客户端PC中Sourcetree软件来访问服务器端git。

ubuntu 服务器 gitlab 代码 ubuntu搭建git服务器_ubuntu_06

ubuntu 服务器 gitlab 代码 ubuntu搭建git服务器_服务器端_07

以上git的服务器端搭建完成。

9、禁用shell登录

ubuntu 服务器 gitlab 代码 ubuntu搭建git服务器_服务器端_08

第五步,禁用shell登录:

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

如果找到的passed文件不能修改(只读模式),解决办法:https://jingyan.baidu.com/article/3aed632ecd9d3c70108091a7.html

 

结束!!!

文献资料参考:

https://www.liaoxuefeng.com/wiki/896043488029600/899998870925664

http://git-scm.com/book/zh/v2/%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E7%9A%84-Git-%E9%85%8D%E7%BD%AE%E6%9C%8D%E5%8A%A1%E5%99%A8


https://jingyan.baidu.com/article/54b6b9c08ff5c42d583b473c.html

https://jingyan.baidu.com/article/3aed632ecd9d3c70108091a7.html

https://zhidao.baidu.com/question/55179721.html