一、1.环境准备,1台Ubuntu系统的服务器(PC),1台用于客户端的自用PC,客户端PC安装了Sourcetree软件。
二、Ubuntu服务器配置:
1、安装git;
$ sudo apt-get install git
2、创建git账户;
3、将账户切换到git用户下面运行,在git用户下通过终端建立.ssh文件与authorized_keys文件目录;
$ cd
$ mkdir .ssh && chmod 700 .ssh
$ touch .ssh/authorized_keys && chmod 600 .ssh/authorized_keys
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
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用户的登录密码);
8、上一步成功后,证明连接成功,下面可利用客户端PC中Sourcetree软件来访问服务器端git。
以上git的服务器端搭建完成。
9、禁用shell登录
第五步,禁用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
https://jingyan.baidu.com/article/54b6b9c08ff5c42d583b473c.html
https://jingyan.baidu.com/article/3aed632ecd9d3c70108091a7.html
https://zhidao.baidu.com/question/55179721.html