使用Gitosis管理套件

  • 參考網址
  • 這裡的Server為ubuntu系統,備有openSSH
  • 所需套件:Git , Gitosis
  • 安裝流程如下

    • 安裝所需套件
      sudo apt-get install git-core python-setuptools
      
    • 建立git帳號

      sudo adduser --home /home/git --disabled-password git
      
      • 一直按enter到執行完畢
    • 下載Gitosis並安裝

      cd ~
      git clone https://github.com/tv42/gitosis.git
      cd gitosis
      sudo python setup.py install
      
    • 執行完畢後,/home/git/repositories會當成所有repositoy的根目錄,server已經架好了

  • Client端設定

    • 產生自己的公鑰
      • 開啟terminal
      • ssh-keygen -t rsa -C {你的Email}
      • 會問「Enter file in which to save the key」,直接按enter放在預設位置即可
      • 會問「Enter passphrase」,不想輸入密碼直接按enter即可
      • 會產生兩個檔案
        • id_rsa:私鑰
        • id_rsa.pub:公鑰
      • 把公鑰寄給Git Server管理者
    • 「管理者」自己初次建立公鑰後要做的動作
      • 要把公鑰傳到server上
        • cd ~/.ssh (剛剛在本機端產生公鑰的位置)
        • scp id_rsa.pub {Server上的UserId}@{ServerIP}:/tmp/id_rsa.user1.pub
        • 需要輸入{Server上的UserId}的密碼
        • 傳送成功
      • 連線到Server或在Server上操作
        • 利用上步驟上傳至Server的公鑰檔初始化Gitosis
          sudo -H -u git gitosis-init < /tmp/id_rsa.user1.pub
          
        • 接著輸入以下指令,確保git的權限正確
          sudo chmod 700 /home/git
          sudo chmod 700 /home/git/.ssh
          sudo chmod 600 /home/git/.ssh/authorized_keys
          
      • 測試是否載入公鑰
        • 回到你的電腦,輸入以下指令
          ssh git@{ServerIP}
          
        • 若有正確載入公鑰的話會顯示
          「ERROR:gitosis.serve.main:Need SSH\_ORIGINALCOMMAND in environment. Connection to {ServerIP} closed.」
          
  • 管理Git Server

    • 「管理者」必須下載gitosis-admin.git
      • git clone git@{ServerIP}:gitosis-admin.git
        • 「keydir」:擺放公鑰的資料夾
        • 「gitosis.conf」:主要設定檔
    • 新增專案(repository) or 使用者

      • 編輯gitosis.conf,加入以下文字

        [group {自訂名稱}]
        members = {Email1} {新UserEmail}
        writable = {新增的專案名稱}
        
      • 將變更push上Server即可完成設定,不需要手動在Server上新增專案

      • 可以開始使用專案囉

        git clone git@{ServerIP}:{專案名稱}.git
        
  • (補充)Windows client端初次連線設定

    • 前往程式集開啟PuTTYgen

    • 讀取已存在的私人金鑰

    • 選取前面所產生的私鑰

    • 儲存剛剛讀取的key

    • 會確認是否不設定密碼,選「是」

    • 設定你的名稱按儲存,會存成.ppk檔案

    • git clone時設定載入剛剛存的.ppk私鑰

    • 完成!

results matching ""

    No results matching ""