• 如何搭建git服务器


    一、前言

           这几天想在自己服务器上写点东西,想安装个git,本人呢是个小白,服务器一窍不通,晕晕晕,在网上找了好多安装的方法,结果都不行,,,终于让我找到了一篇,终于让偶试成功了,要记下来,要记下来,要记下来,说三遍

      现在越来越多的公司用git进行版本控制,不过git是默认是开源的,如果私有的话是需要付费的,如果不想付费自己可以搭建一个git服务器用来版本控制。

    二、服务器端操作

      1、安装git

    sudo apt-get install git(sudo apt-get update)/yum install git

      2、创建一个git用户

    sudo adduser git

      3、创建登录证书

      在git用户目录下创建.ssh文件夹并在其下创建文件authorized_keys(/home/git)

      

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

      收集需版本控制下的用户的公钥,就是他们自己的id_rsa.pub文件,这个需要生成,具体可以Google生成,把所有公钥导入到/home/git/.ssh/authorized_keys文件里,不同的公约换行

      

    4、初始化Git仓库

    首先我们选定一个目录作为Git仓库,假定是/home/gitrepo/runoob.git,在/home/gitrepo目录下输入命令:

    $ cd /home
    $ mkdir gitrepo
    $ chown git:git gitrepo/
    $ cd gitrepo
    
    $ git init --bare runoob.git 【git --bare init】
    Initialized empty Git repository in /home/gitrepo/runoob.git/

    以上命令Git创建一个空仓库,服务器上的Git仓库通常都以.git结尾。然后,把仓库所属用户改为git:

    $ chown -R git:git runoob.git

    5、克隆仓库

    $ git clone git@192.168.45.4:/home/gitrepo/runoob.git
    Cloning into 'runoob'...
    warning: You appear to have cloned an empty repository.
    Checking connectivity... done.

    192.168.45.4 为 Git 所在服务器 ip ,你需要将其修改为你自己的 Git 服务 ip。

    这样我们的 Git 服务器安装就完成了,接下来我们可以禁用 git 用户通过shell登录,可以通过编辑/etc/passwd文件完成。找到类似下面的一行:

    git:x:503:503::/home/git:/bin/bash

    改为:

    git:x:503:503::/home/git:/sbin/nologin

      6、为了安全考虑,我们禁用shell登录,编辑/etc/passwd找到类似下面的代码并更改

    git:x:1001:1001:,,,:/home/git:/bin/bash
    改成
    git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell

    三、客户端操作

      客户端操作就比较简单了直接clone下来就好了

    git clone git@192.168.0.197:agame-server
    //这个ip是我局域网git服务器的ip 具体根据自己的服务器更改 agame-server是我的git仓库同上服务器初始化的仓库  如果是/var/www/agame-server  就是git clone git@192.168.0.197:/var/www/agame-server
    //如果在windows上提示没有权限创建文件夹  就以管理员身份运行下git bash
    //一开最好选择下分支不然可能会提交失败不知道提交到那个分站 git fetch origin(这是我的分支 因为自己搭建的测试服务器没有多个分支)
    【特别注意】

    创建证书登录:

    收集所有需要登录的用户的公钥,公钥位于id_rsa.pub文件中,把我们的公钥导入到git库所在linux服务器的/home/git/.ssh/authorized_keys文件里,一行一个。

    如果没有该文件则创建它且修改对应文件的权限:

    [plain] view plain copy
     
     在CODE上查看代码片派生到我的代码片
    1. $ cd /home/git  
    2. $ mkdir .ssh  
    3. $ chmod 700 .ssh  
    4. $ touch .ssh/authorized_keys  
    5. $ chmod 600 .ssh/authorized_keys  

    用户上的公钥和私钥:

    1.首先查看其是否有。

    [plain] view plain copy
     
     在CODE上查看代码片派生到我的代码片
    1. $ cd ~/.ssh  
    2. $ ls  
    寻找id_rsa与id_rsa命名的文件,一个是.pub扩展名(公钥),另一个为私钥。
    2.如果没有则使用ssh-keygen创建,连续按回车键,表示使用私钥时不输入口令。
    在.ssh下面生成了2个文件id_rsa与id_rsa.pub(公钥)。
    特别注意点:

    1.git上的仓库对git用户要有写权限,同时需要将/etc/ssh/sshd_config中将RSA认证打开,即

    [plain] view plain copy
     
     在CODE上查看代码片派生到我的代码片
    1. RSAAuthentication yes  
    2. PubkeyAuthentication yes  
    3. AuthorizedKeysFile .ssh/authorized_keys  
    2./home/git属于git用户所有,且权限为755即drwxr-xr-x。
    3.确保.ssh/authorized_keys中每个用户的id_rsa.pub(公钥)为ssh-rsa开头。
  • 相关阅读:
    [转]翻译:使用.net3.5的缓存池和SocketAsyncEventArgs类创建socket服务器
    强制将IE,Chrome设置为指定兼容模式来解析(转)
    MySQL vs NoSQL 效率与成本之争(转)
    Configure the max limit for concurrent TCP connections
    在as3中Embed(绑定)flash动画元素
    使用ASP.NET Global.asax 文件(转)
    AspExe a small ASP.NET compiler and executor for document generation
    [转]vim + cscope/ctags 查看分析代码
    编译Chromium 遇到的问题
    yum与apt命令比较
  • 原文地址:https://www.cnblogs.com/wenxinphp/p/7211406.html
Copyright © 2020-2023  润新知