手把手教你搭建Git服务器

最近入了台阿里云服务器,就学了学搭建一个Git服务器,其实也挺简单的,不过中途还是遇到了一些小问题

首先服务器系统版本为Ubuntu16.04,如果用Centos版本的同学也可以看看以下总结,相信自己也能动手完成:

  1. 如果没有安装ssh的先安装ssh
  2. 安装git
  3. 添加git用户
  4. 创建证书
  5. 初始化Git仓库
  6. 禁用shell登录
  7. git clone开始玩耍

1.安装SSH

查看是否安装ssh,可以使用命令 whereis ssh

查看ssh服务是否启动,可以使用命令 netstat -tl  如果出现 tcp 0 0 *:ssh *:* LISTEN 字样即服务已启动或者查看进程ps -ef | grep ssh

安装ssh:

sudo apt-get install openssh-server 

2.安装git

sudo apt-get install git

3. 添加git用户

sudo adduser git

4.创建证书 

收集所有需要登录的用户的公钥,就是他们自己的id_rsa.pub文件,把所有公钥导入到/home/git/.ssh/authorized_keys文件里,一行一个。将用户公钥传到服务器可使用scp命令,然后用cat命令追加到authorized_keys文件中。

注意这里,如果你登录的不是git用户,那么你需要知道cd ~/.ssh/authorized_keys文件不是git用户下的文件不然后面操作你都会发现需要密码登录,如何你还配置了git用户禁止shell登录,那么会提示这句报错:Could not read from remote repository,而这其实是你没有把公钥添加到正确的文件中,是/home/git/.ssh/authorized_keys文件。注意,这些文件的 owner 都是第三步创建的用户git。

5.初始化Git仓库

选定一个目录作为Git仓库,假定是/srv/sample.git,在/srv目录下输入命令:

sudo git init --bare sample.git

Git会创建一个裸仓库并且以.git结尾,然后把owner改为git

sudo chown -R git:git sample.git

6.禁用shell登录

出于安全考虑,创建的git用户不允许登录shell,可以通过编辑 /etc/passwd 文件完成,找到类似这一行

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

修改为: 

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

7.git clone开始玩耍

现在就可以用git clone 命令来克隆远程仓库啦

$ git clone git@x.x.x.x:/srv/sample.git
Cloning into 'sample'...
The authenticity of host 'x.x.x.x (x.x.x.x)' can't be established.
ECDSA key fingerprint is SHA256:FqGc7eI0pOiaARjsJ/sfg+byytKKFCAlJCTkSp6zGvU.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '39.108.55.42' (ECDSA) to the list of known hosts.
warning: You appear to have cloned an empty repository.

注意 x.x.x.x就是你的ip或者是你的域名,:后面就是你的仓库位置了

如果你提交到空仓库出现下面报错:

Perhaps you should specify a branch such as 'master'.
fatal: The remote end hung up unexpectedly
error: 无法推送一些引用到 'git@x.x.x.x:/srv/sample.git'

可以使用下面命令强制提交

git push -u -f origin master

后面你就可以自由玩耍啦

 

参考:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/00137583770360579bc4b458f044ce7afed3df579123eca000

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值