Ubuntu16搭建私人git服务器

来源:互联网 发布:telnet 端口 编辑:程序博客网 时间:2024/05/21 08:25

Ubuntu16搭建私人git服务器


菜鸟教程搭建私人git写的挺明白,但是有一点问题,没有说清楚免密登录的方法,这里详细记录下


1、安装git

$sudo apt update$sudo apt upgrade$sudo apt install git

接下来创建一个git用户用来运行git服务

$sudo adduser git      

2、创建证书登录

收集需要登录的用户的公钥(在客户机),公钥一般位于 ~/.ssh 或者 C:\Users\sumlo\.ssh 中的 id_rsa.pub 文件中,将内容写入服务器的 /home/git/.ssh/authorized_keys 文件中(若没有则创建):

$cd /home/git$mkdir .ssh$chmod 700 .ssh$touch .ssh/authorized_keys$chmod 600 .ssh/authorized_keys

重要的来了!设置很多免密的问题都在这

$cd home$chown -R git:git git #设置git文件夹归git用户所有        

同时,修改公钥存放文件

$vi /etc/ssh/sshd_config

修改:

AuthorizedKeysFile home/git/.ssh/authorized_keys        

3、禁止Shell登录

服务器端处于安全考虑,git用户不允许登录shell,否则通过ssh可以直接登录服务器
编辑 /etc/passwd 修改:

git:x:1001:1001:,,,:/home/git:/bin/bash     

修改为

git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell    

这样git可以正常通过ssh使用git但是无法登录服务器


4、创建空仓库

初始化仓库时一定要使用裸库不然不可以push

$mkdir test.git$cd test.git       $git init --bare

然后以后每创建一个新的仓库,记得这步操作: 修改仓库所属用户为git

$cd /home/git$chown -R git test.git 

这样就可以正常clone和push了

$git clone git@xx.xx.xx.xx:/home/git/test.git