git服务器搭建(ssh)

需求:搭建一个git服务器,满足十来号人git托管;比较简单的认证机制;

步骤如下:

  1. Linux服务器需要先安装git;

  2.创建一个名叫git的用户    adduser git    //注意切换root权限。单独创建git用户,之后会限制以git用户登录服务器的操作。由于我们使用ssh认证方式托管项目,避免了认证用户对服务器的其它操作。

  3.进入/home目录下会找到一个git文件夹,这是Linux给每个账户增加的用户文件夹。

    a.进入git文件夹,创建 .ssh/ 文件夹, 进入.ssh/,创建authorized_keys 文件。   

    b. authorized_keys文件用于保存使用该服务人员ssh公钥。 // ssh公钥一般保存在  ~/.ssh/id_rsa.pub, 如果没有需要自行创建, ssh-keygen -t rsa -C "youremail@example.com"

 

  4.选定一个文件夹作为git仓库。以 /srv/ 为例子:

    a.创建一个git纯仓库   git init --bare example.git

    b.通过 ls -al 查看,example.git 文件夹仍然属于root用户。修改文件夹拥有者。

      chown -R git:git example.git

   5.限制git用户对服务器操作

    a.我们只希望git用户能对/srv下的项目有推送拉取的操作,不希望通过git用户登录服务器。可以使用git自带的git-shell控制.

    b.编辑 vim /etc/passwd 文件, 找到这样的一行    git:x:1001:1002::/home/git:/usr/bin/bash

      修改为 git:x:1001:1002::/home/git:/usr/bin/git-shell

    c./usr/bin/git-shell 的路径可通过  whereis git-shell 查找

    d.操作结束后,可尝试 ssh git@域名   登录,发现登录后立马退出。

   

  至此,一个简单的git服务架设完成。

使用:

  git clone git@服务器地址:/srv/example.git 

   进行正常拉取推送

加入小伙伴:

  登录服务器 /home/git/.ssh/authorized_keys  增加小伙伴公钥

创建新的项目:

  登录服务器进入  /home/git ,     git init --bare newone.git ,    修改newone.git文件所属权限

局限性:

  创建新项目操作麻烦;

  权限认证单一;

 

    

原文地址:https://www.cnblogs.com/hexisen1991/p/7735815.html