zoukankan      html  css  js  c++  java
  • 在linux中搭建git服务器

    个人觉得, 以下搭建git服务器的过程就像是在linux增加了一个用户, 而这个用户的登录shell是 git-shell, 太刨根问底的东西我也说不清楚, 还是看下面的过程吧. 过程参考了网上的文章, 在其中加入了一些我的个人理解.

    过程:

    1. 首先你要增加一个用户, 命令是:

    sudo useradd git

    这个用户作为你访问 git 服务的用户. 命令执行完之后, 你的 /home 文件夹里应该被创建了一个名为 git 的目录作为git用户的家目录 ,即 /home/git/ , 而且 /etc/passwd/etc/shadow 中也自动增加了git 用户的一行.

    2. 我们来修改git 这个用户的登录shell:

    就是通过修改 /etc/passwd 这个文件啦. git 用户默认的shell应该是 /bin/bash ,也可能是其它的. 我们要做的就是将其改成 git-shell .不同的系统中git-shell的位置可能不一样, 可能是 /bin/git-shell , 也可能是 /usr/bin/git-shell . 反正修改成对应的就好了.

    3. 接下来就是管理公钥:

    记得我们使用github的时候要把我们的公钥在github中配置好之后才能向github 进行push操作, 所以我们搭建的git服务器也要有配置公钥, 只有握有与公钥相对应私钥的客户端才能与git服务器通信.

    就是把公钥放到 /home/git/.ssh/authorized_keys 这个文件中, 如果有多一个公钥就一行一个. 在这之前这个文件可能是不存在的, 需要手动创建.

    4. 为 /home/git/ 目录下的所有文件设置所有者和所属组均为 git

    chown -R git:git /home/git

    5. 现在基本的环境已经配置好了, 只是还没有容器, 所以我们来创建一个裸容器(也就是没有工作区的容器)

    git init --bare /home/git/sample.git

    --bare 选项表示创建一个裸容器

    6. 同样要为刚才创建的容器设置所有者和所属组

    
    
    chown -R git:git /home/git/sample.git

    此处包括第 4 步中的所有者和所属组的设置基本可以说是必须的, 因为我们刚才创建git家目录中的文件的时候没说是使用什么用户身份进行操作, 如果不是使用git这个用户进行操作的, 会导致git用户不能访问上面的步骤中生成的那些文件, 所以还是应该修改一下这些文件的所有者和所属组.

    7. 现在可以使用git服务器了

    在本地测试可以这样

    git clone git@localhost:/home/git/sample.git

    也可以使用相对路径(相对于 git 用户的家目录)

    git clone git@localhost:sample.git

    刚才创建的裸容器是空的, 所以 clone 的时候 git 会提示你容器为空.

    因为与 git 服务器交互需要使用私钥进行验证 , 所以如果你生成密钥对的时候输入了密码 , 在这个地方就算克隆容器也是需要密码的.

    暂时先写到这.

  • 相关阅读:
    Node初学者入门,一本全面的NodeJS教程(转载)
    关于绑定变量的一点心得(转)
    【转】C++11 标准新特性: 右值引用与转移语义
    SVN分支与合并【超详细的图文教程】(转载)
    天猫魔盒屏蔽升级
    大页内存(HugePages)
    反向路径过滤——reverse path filter
    所做更改会影响共用模板Normal.dotm。是否保存此更改
    基于glew,freeglut的imshow
    glfw之hello world
  • 原文地址:https://www.cnblogs.com/vanwoos/p/5072747.html
Copyright © 2011-2022 走看看