1. 程式人生 > >ubuntu git server

ubuntu git server

今天開始配置git服務,之前已在ubuntu虛擬機器上配置過,但最後客戶端連線失敗。先重新安裝一次,並記錄過程:

參考:http://my.oschina.net/u/1240239/blog/495654

1、安裝配置git

      A、安裝:

       sudo apt-get install git-core openssh-server openssh-client

    git-core是git版本控制核心軟體

    安裝openssh-server和openssh-client是由於git需要通過ssh協議來在伺服器與客戶端之間傳

  b、配置:

  • 建立所有程式碼倉庫和使用者許可權的管理者git,並更改使用者的密碼。在當前使用者下執行:
    sudo useradd -m -s /bin/bash git


    sudo passwd git

    useradd會在ubuntu上增加一個git使用者

  • 建立git倉庫的儲存目錄、更改檔案目錄屬主為程式碼倉庫的管理者git,只讓git使用者對此目錄有許可權。本文件以/srv/git目錄做為git倉庫的儲存目錄。在當前使用者下執行:
    sudo mkdir /srv/git
    sudo chown git:git /srv/git
    sudo chmod 700 /srv/git

    2安裝配置gitosis

    1. 安裝gitosis前準備

      • 初始化git使用者。在任何一臺機器上使用git,第一次必須初始化一下。在當前使用者下初始化全域性的git資訊:
        git config --global user.name "jackliu"


        git config --global user.email "[email protected]"

      • 安裝python的setup tool。在當前使用者下執行如下命令安裝:
        sudo apt-get install python-setuptools

    1. 安裝gitosis。在當前使用者下進行安裝,執行如下命令: 

      cd /tmp
      git clone https://github.com/res0nat0r/gitosis.git

      上面有2個零啊,不要打錯了

      1. cd gitosis

      2. sudo python setup.py install
        預設狀態下,gitosis會將git倉庫放在 git使用者的home下,所以我們做一個連結到/home /repo,su到git使用者,執行如下命令:
        ln -s /srv

        /git /home/git/repositories
        然後退出git使用者,一定要切換到git使用者下執行

    2. 到這一步,/home/git/下沒有repositories這個檔案夾,再檢視,原來有個gitcy使用者,在那個資料夾裡有了repositories資料夾。可是刪了該使用者後,不管怎麼重複之前打步驟,始終不能生成該資料夾,後來,新建一個虛擬機器測試,git賬戶也不能生成這個資料夾,原來是需要手動建立打。
    3. 建立/home/git/repositories  : sudo mkdir /home/dir/repositories
    4. sudo chown git:git /home/dir/repositories
    5. sudo chmod 755 /home/dir/repositories
    6. ln-s /srv/git /home/dir/repositories
    7. ssh-keygen -t rsa    在/home/git/.ssh/下生成公鑰
    8. 切換到其他賬戶,ssh-keygen -t  rsa 生成管理員公鑰/home/cy/.ssh/
    9. scp /home/cy/.ssh/id_rsa.pub [email protected]:/tmp
    10. su git
    11. cd /tmp
    12. sudo chmod a+r id_rsa.pub
    13. sudo -H -u git gitosis-init < /tmp/id_rsa.pub 初始化管理倉庫
    14. sudo chmod 755 /home/git/repositories/gitosis-admini.git/hooks/post-update
  • 在git伺服器上搭建測試專案庫

    建立倉庫名“test”的測試倉庫
    1. mkdir /srv/git/test.git     (用git賬戶建立test.git)
    2. cd /syv/git/test.git
    3. git init --bare  (初始化倉庫
  • gitosis本身的配置也是通過git來實現的。
  • 克隆gitosis-admin.git倉庫
  • 切換到管理員賬戶(cy)
  • 在git管理員使用者目錄下,git clone [email protected]<server>:gitosis-admin.git
  • 如果出現:
    fatal: '~/gitosis-admin.git' does not appear to be a git repository fatal: The remote end hung up unexpectedly
    改成:
    sudo git clone [email protected]<Server-IP>:/home/repo/gitosis-admin.git
  • cd gitosis-admin/       
  • 該目錄下的keydir目錄是用來存放所有需要訪問git伺服器的使用者的ssh公鑰:各個使用者按照前面提到的辦法生成各自的ssh公鑰檔案後,把所有人的ssh公鑰檔案都拿來,按名字命名一下,比如[email protected][email protected]等,統統拷貝到keydir下:
    su root
  • cp /path/.ssh/id_rsa.pub ./keydir/[email protected]
    • 修改gitosis.conf檔案
      [gitosis]
      [group gitosis-admin]
      members = [email protected] [email protected]
      writable = gitosis-admin 

      [group hello]
      members = [email protected] [email protected]
      writable = test

      這個配置檔案說明:

      members = 後面跟的一定要和 .pub的字首一致,否則沒有訪問許可權

      目前這些配置檔案的修改只是在你的本地,你必須推送到遠端的gitserver上才能真正生效。 加入新檔案、提交併push到git伺服器:
      git add .
      git commit -am “add test prj and users”
      git push origin master

    測試搭建的專案庫

    伺服器搭建完了,並且有一個空的專案test在伺服器上。接下來測試一下,空倉庫是不能clone的,所以需要某一個有寫許可權的人初始化一個版本。 下面是在[email protected]客戶端完成。
    mkdir test-ori
    cd test-ori/
    git init
    echo “/*add something*/” > hello
    git add .

    git commit -am “initial version”
    git remote add origin [email protected]<server-ip>:test.git
    git push origin master

     新增其他賬戶並clone  在cy-virtual客戶機上

     cd ~

     ssh-keygen -t rsa

     scp .ssh/id_rsa.pub [email protected]<server-ip>:/tmp 

    服務端:

    cp /tmp/id_rsa.pub <管理員gitosis-admin目錄>/keydir/cy@virtual.pub

修改gitosis.conf檔案
[group test]
members = 新增cy@virtual

並提交管理更改

git add .
git commit -am “and newusers”
git push origin master

現在客戶端可以clone

客戶端:在需要克隆的目錄: git clone [email protected]<server-ip>: test.git

完成搭建

  • git 帳號執行sudo ,報不在sudoers檔案中,修改/etc/sudoers,添加當前使用者

  • git    ALL=(ALL:ALL) ALL。我是直接新增的git組:@git    ALL=(ALL:ALL) ALL

  • 如果修改了埠,clone: git clone ssh://[email protected]<serverip>:22/git專案。就是必須加ssh://,以及新增埠。預設埠22(ssh的埠)

  • Linux中SSH預設埠為22,:
    在/etc/ssh/sshd_config中找到Port 22,將其修改為60000,或使用/usr/sbin/sshd -p 60000指定埠。

    如果使用者想讓22和60000埠同時開放,只需在/etc/ssh/sshd_config增加一行內容如下:
    [[email protected] /]# vi /etc/ssh/sshd_config
    Port 22
    Port 60000
    儲存並退出
    [[email protected] /]#service ssh restart



相關推薦

ubuntu git server

今天開始配置git服務,之前已在ubuntu虛擬機器上配置過,但最後客戶端連線失敗。先重新安裝一次,並記錄過程: 參考:http://my.oschina.net/u/1240239/blog/495654 1、安裝配置git       A、安裝:        sudo

Ubuntu 搭建簡單的git server

簡介 Git 可以使用四種主要的協議來傳輸資料: 本地協議(Local), HTTP 協議, SSH(Secure Shell)協議 Git 協議。 在此,我們將會討論那些協議及哪些情形應該使用(或避免使用)他們。 這裡使用的是ssh協議,採用的是的gitcore搭建的,如果想搭建一個高

UBUNTU上的GIT SERVER

Git是一個開源的版本控制系統,由Linus Torvalds主導,用於支援Linux核心開發。每一個Git工作目錄,都是一個完整的程式碼庫,包含所有的提交歷史。有能力跟蹤所有的程式碼版本,而不會去依賴於網路與中央伺服器。 安裝 Git可以通過以下的命令進行安裝 sudo apt-get install gi

Ubuntu下安裝git server

1.更新:防止安裝git依賴包時出錯 sudo apt-get update sudo apt-get upgrade 2.安裝openssh和openssh-client:安裝問題詳見我的其他部落格 3.安裝git sudo apt-get install git-cor

Ubuntu上建立Git Server

在 Ubuntu 系統中部署 Git Server 雖然有很多開源的Git倉庫,不過並非所有都盡人意,譬如Github,Gitlab等,不是伺服器不穩定,就是強制開源,又或者有檔案大小,專案數量等方面的限制,我們認為Git服務提供商設定的這些限制是合理的,是無可指責的,但從實際出發,這些免費倉庫並不一定都

已經在Git Server服務器上導入了SSH公鑰,可用TortoiseGit同步代碼時,還是提示輸入密碼?

www 服務器端 com 技術分享 style 訪問 github 情況 ima GitHub雖好,但畢竟在國內訪問不是很穩定,速度也不快,而且推送到上面的源碼等資料必須公開,除非你給他交了保護費;所以有條件的話,建議大家搭建自己的Git Server。本地和局域網服務器都

ubuntu live-server 啟動報錯

sysctl ech inf max 需要 原因 con 很多 使用 背景:在Ubuntu 系統中使用live-server進行刷新時報錯,報錯如下 原因:當前問題主要是因為live-server的watch需要監聽很多文件的改動,但是fedora、ubuntu系統的文件

使用Gitblit 在windows 上部署你的Git Server

pos tail local 日誌信息 pac 分支 delete ava ip地址 Gitblit   Gitblit 是一個使用Java來管理Git的軟件,其本身有很多特性分支。關於Gitblit 的詳細情況可以到官網上查看: http://gitblit.com 閑話

linux服務器上搭建gitolite實現對git server的版本庫的權限控制

搭建gitolite一、環境介紹: 1.1Git賬戶管理機器manageip:10.0.0.56 [root@manage ~]# cat /etc/redhat-release CentOS release 6.7 (Final) [root@manage ~]# hostname manage [roo

windows下git server搭建

安裝 修改 epo .net 下載 分享圖片 http win 編輯 使用gitblit1.8搭建 首先要安裝JDK 然後下載gitblit,這裏給一個CSDN下載 https://download.csdn.net/download/nietzsche0/10482683

在Windows上搭建Git Server

Git在版本控制方面,相比與SVN有更多的靈活性,對於開源的專案,我們可以託管到Github上面,非常方便,但是閉源的專案就會收取昂貴的費用。   那麼私有專案,如何用Git進行程式碼版本控制呢?我們可以自己構建Git伺服器。一般來說,在Linux上搭建Git的教程比較多,但是如何

Centos搭建 Git Server

yum install -y git git –version git version 1.8.3.1 新增Git使用者 useradd jggit passwd git#git //新建庫 Cd /home/jggit/data mkdir -p suanfa.gi

在Windows上搭建Git Server (2)

  第一步:下載Java,下載地址:http://www.java.com/zh_CN/   第二步:安裝Java.安裝步驟不再詳述。   第三步:配置Java環境變數.   &nb

IBM伺服器安裝Ubuntu Linux server 64以及網路配置

最近在部署AC環境,雲AC要求軟體環境為Ubuntu 14.04 版本的伺服器Linux作業系統,下面是環境部署的準備工作: 一、下載檔案 (1)下載系統檔案 (2)下載md5summer 地址:http://www.md5summer.org  --> D

Set Up a Minimal Git Server

Github is well-known and we are enjoying it, but now I will set up a minimal Git server on Ubuntu according to Git on the Server for some reason you h

《Swift入門》Ubuntu 14 server安裝Swift執行環境

Swift的開發環境可以使用蘋果平臺(OS X)或Linux系統(Ubuntu),這裡介紹在我在Ubuntu 14 server下安裝Swift執行環境的過程1、安裝所需的依賴項$ sudo apt-get install clang libicu-dev我是先安裝的clan

企業級Git Server服務的部署與應用

開源的普及,讓使用Git來進行版本控制管理的開發者、團隊、企業也越來越多。 市場上,無論國內外,提供的免費的Git託管服務商也越來越多。Github當然首當其衝,還有Gitlab、Bitbucket等。國內基於Git的程式碼託管也非常多,如果是面向企業,收費其實都不低。最重要的,也不是收費問題,原

golang 實現GIT SERVER基本原理

go語言實現的服務端程式和java一樣很容易做到跨平臺部署。對於私有git伺服器而言,使用golang實現也是一個不錯的選擇。 在 Github 上可以使用 HTTP 協議 fetch 和 push 倉庫中的程式碼, 其實想要寫一個簡單的 Git HTTP Server

最新GitHub新手使用教程(Linux/Ubuntu Git從安裝到使用)——詳細圖解

說明:該篇部落格是博主一字一碼編寫的,實屬不易,請尊重原創,謝謝大家! 一.敘述 1.說明:需要在Windows 安裝Git的同學,可以檢視該篇部落格 https://blog.csdn.net/qq_41782425/article/details/85183250 

團隊合作---使用Gitblit在Windows下搭建Git Server(HTTP)

用過Git之後再使用Svn是很頭疼的事情 於是就讓向老大要了一塊Windows伺服器的地址空間,來搭建Git Server 一、下載Gitblit 二、下載完解壓 (1)解壓之後我的gitblit檔案的路徑: D:\gitblitserver\gitb