在uos下使用gitolite搭建git伺服器

2021-10-06 12:34:15 字數 2587 閱讀 2815

檢查基礎服務

檢查伺服器是否有sshd相關的程序資訊,git是否安裝,perl環境和perl模組perl-data-dumper是否安裝。一般伺服器上都安裝了這些基礎的服務。

建立git使用者

# 在root許可權下

useradd -m git

#建立新的使用者git專門管理git伺服器

# 修改git使用者密碼

passwd

git# 切換使用者

sugit

# 在git的home目錄下clone gitolite**

git clone

# 安裝gitolite

mkdir bin

$home/gitolite/install -to $home/bin # 一定要用絕對位址,用相對位址會報錯

ls bin

# 顯示下列檔案就說明成功安裝

commands gitolite gitolite-shell lib syntactic-sugar triggers version vref

設定乙個管理員使用者dvt0551

# 在管理員dvt0551的home目錄下,檢查是否有公鑰

# ~/.ssh/is_rsa.pub是否存在

ssh-keygen -t rsa # 如果不存在,存在就跳過這一步

# 將管理員dvt0551的ssh公鑰copy到git的home目錄下

cp ~/.ssh/is_rsa.pub /home/git/dvt0551.pub

# 初始化gitolite,在git目錄下並設定dvt0551為管理員

bin/gitolite setup -pk ./dvt0551.pub

# 初始化後建立了repositories和.gitolite目錄

# repositories/gitolite-admin.git是管理員配置倉庫

# .gitolite/對應gitolite-admin.git的內容

# 所有配置修改必須由管理員提交到gitolite-admin.git

用dvt0551登陸,然後轉殖gitolite管理倉庫

# 在dvt0551的home目錄下

git clone [email protected]:gitolite-admin

ls gitolite-admin

conf keydir

# do some change, add & commit

# 新增使用者:將新使用者的ssh公鑰放置在keydir中,即可新增使用者,並在conf/gitolite.conf中配置使用者許可權。

# 建立倉庫:在conf/gitolite.conf中增加repo可以建立新倉庫,並新增使用者許可權

管理使用者許可權

在conf/gitolite.conf中沒有設定的repo會提示以下錯誤

# 假設你之前建立了helloworld版本庫,現在使用git clone [email protected]:helloworld 試圖clone  

fatal: r any helloworld id_rsa denied by fallthru

(or you mis-spelled the reponame)

fatal: the remote end hung up unexppectedly

repo helloworld

rw+ = dvt0551

提交到git倉庫

git add conf keydir

git commit -m "add the repo and add rw+ to dvt0551"

git push

這樣乙個基本的git伺服器就搭建完成了!

設定許可權,讓普通使用者可以建立自己的版本庫

但是,這樣設定以後,使用者仍然不能自己建立版本庫並提交到git伺服器上。每次有新的版本庫建立後,需要管理員手動新增新的repository,然後設定許可權,很麻煩。下面就是解決方法

# 管理員dvt0551在~/gitolite-admin/conf/gitolite.conf中新增一下**

@administrators = dvt0551

repo creator/[a-za-z].*

c = @all # 設定使用者可以在自己的名字空間下(/),自己建立版本庫。

rw+ = creator # 設定版本庫建立者對版本庫具有完全許可權。

rw = writers

r = readers @administrators # 讓管理員組administrators的使用者有讀取許可權

# 至於writers & readers這兩個使用者組,是有ssh命令建立,具體可以使用setperms命令來設定。

例如,使用者dev1執行git push命令在gitolite伺服器上自己的名字空間下建立版本庫。

git push [email protected]:dev1/repo1.git master

在Ubuntu下快速安裝gitolite

在ubuntu下快速安裝gitolite 我的環境 客戶端 mac lion 10.7 服務端 ubuntu 12.04 ec2 instance 客戶端操作 1.建立 ssh 公鑰私鑰對 ssh keygen t rsa 2.上傳公鑰到ubuntu伺服器 scp ssh id rsa.pub ub...

UOS 下的VScode 使用經驗

我已經把uos作為我的主力工作機。遇到麻煩就遠端登入到windows,嘿嘿。現在使用vscode 進行主力c 和 c 開發。vscode 本質上是乙個文字編輯器,各種外掛程式均以單專案為目標設計。進行多專案開發時,語法提示之類的東西就變得很麻煩了。這裡記錄一下主要的一些心得。不管你有多少專案,最好還...

使用gitolite管理git許可權

1 伺服器上新增專用管理賬戶git,並在伺服器上安裝git 2 建立本地機器的公私鑰 3 伺服器安裝gitolite 4 倉庫新增與管理 5 新增使用者並管理使用者許可權 6 修改管理員的公鑰 7 修復管理員的許可權 一 伺服器上安裝git略過 二 建立本地機器的公私鑰 ssh keygen f s...