使用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
- 利用上步驟上傳至Server的公鑰檔初始化Gitosis
- 測試是否載入公鑰
- 回到你的電腦,輸入以下指令
ssh git@{ServerIP}
- 若有正確載入公鑰的話會顯示
「ERROR:gitosis.serve.main:Need SSH\_ORIGINALCOMMAND in environment. Connection to {ServerIP} closed.」
- 回到你的電腦,輸入以下指令
- 要把公鑰傳到server上
- 產生自己的公鑰
管理Git Server
- 「管理者」必須下載gitosis-admin.git
- git clone git@{ServerIP}:gitosis-admin.git
- 「keydir」:擺放公鑰的資料夾
- 「gitosis.conf」:主要設定檔
- git clone git@{ServerIP}:gitosis-admin.git
新增專案(repository) or 使用者
編輯gitosis.conf,加入以下文字
[group {自訂名稱}] members = {Email1} {新UserEmail} writable = {新增的專案名稱}
將變更push上Server即可完成設定,不需要手動在Server上新增專案
可以開始使用專案囉
git clone git@{ServerIP}:{專案名稱}.git
- 「管理者」必須下載gitosis-admin.git
(補充)Windows client端初次連線設定
前往程式集開啟PuTTYgen
讀取已存在的私人金鑰
選取前面所產生的私鑰
儲存剛剛讀取的key
會確認是否不設定密碼,選「是」
設定你的名稱按儲存,會存成.ppk檔案
git clone時設定載入剛剛存的.ppk私鑰
完成!