當前位置:
首頁 > 知識 > 搭建自己的Git伺服器

搭建自己的Git伺服器


搭建Git伺服器




讓我們先看下伺服器端SSH訪問的配置。在這個例子中,我們使用authorized_keys的方法認證用戶。我們假設你的伺服器是一個標準linux發行版,比如ubuntu。



首先,你需要創建一個git用戶,並在用戶目錄下創建一個.ssh文件夾



接下來,你需要將開發者的SSH公鑰添加到authorized_keys文件。我們這裡假設你能獲取到可信的公鑰,並將它們保存到了臨時文件中。公鑰的內容應該大致像這個樣子:



你需要將這個公鑰放置在git用戶.ssh文件夾中的authorized_keys文件的最後。


現在,你可以初始化一個空的倉庫,運行 git init 命令,並附帶--bare選項,這樣就是單純地初始化一個倉庫,而不會變更當前目錄。



然後,John、Josie或者Jessica就可以將項目的初版推送到這個倉庫中了,步驟就是添加一個remote地址,並推送對應的分支。注意,如果你想增加一個項目,那麼你就需要登陸到機器上來,再初始化一個新的倉庫。我們將你使用到的伺服器成為gitserver。如果你是公司內部使用,那麼設置一個DNS,讓域名gitserver指向這台機器。然後你就可以直接使用下列命令了。


(假設myproject是一個已經存在並且有些內容的文件夾)


這時,其他人就可以把這個倉庫clone下來,做些修改再push回去了。



用上面的方法,你很快得到了一個可用的Git伺服器,現在你可以跟很多人一起協作工作了。



注意,現在每個人都能夠登陸到伺服器上,並以git用戶身份操作。如果你想限制這種可能,可以修改一下passwd文件。



你可以限制用戶只能通過git-shell來進行操作。如果你這樣設置git用戶的登陸設置,那麼git用戶就無法登陸到機器上了。為了做到這種效果,使用git-shell替換bash和其他登陸shell。所以如果你的/etc/shells中沒有git-shell,那麼你需要先添加上去:



現在你可以為一個用戶修改他的shell了



現在,git用戶只能使用ssh推拉代碼,而不能登陸到機器上了。


如果你嘗試登陸,會得到這樣的提示信息



現在git的網路命令還可以正常使用,但是登陸到遠程伺服器上已經不行了。就像輸出中顯示的,你也可以在git用戶目錄下創建一個文件夾來定製git-shell的一些行為。例如,你可以限制git伺服器接受的命令範圍,或者更改嘗試登陸的錯誤提示。對於定製git-shell的行為,你可以通過命令git help shell 查看相關的幫助信息。





英文原文:https://git-scm.com/book/en/v2/Git-on-the-Server-Setting-Up-the-Server


譯者:詩書塞外


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 Python程序員 的精彩文章:

用AlphaGo背後的人工智慧做金融投資
Python控制鍵盤滑鼠:pynput

TAG:Python程序員 |