以ubuntu服務器爲例,若是要建立小範圍的私有git服務器,是很是簡單的,只須要以下幾個簡單步驟: git
Step 1: 安裝git shell
直接經過sudo apt-get install git便可完成。 ubuntu
Step 2: 建立git用戶 安全
git用戶用來經過SSH鏈接git服務,輸入命令: bash
$ sudo adduser git
Step 3: 建立證書登陸 服務器
首先收集全部須要登陸的用戶公鑰,而後導入到/home/git/.ssh/authorized_keys文件便可。 app
Step 4: 初始化git倉庫 ssh
假設倉庫位於/srv/sample.git,在/srv目錄下輸入命令: spa
$ sudo git init --bare sample.git
這樣就建立了一個裸倉庫,裸倉庫沒有working dir,由於服務器上的git倉庫純粹是爲了共享,倉庫目錄通常以.git結尾。而後把owner改成git: code
$ sudo git init --bare sample.git
Step 5: 防止登陸shell
出於安全考慮,git用戶不該該登陸shell,能夠編輯/etc/passwd,找到相似一行:
git:x:1001:1001:,,,:/home/git:/bin/bash
改成:
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
這樣,git用戶能夠正常經過ssh使用git,但沒法登陸shell。
Step 6: 克隆倉庫
在客戶端就能夠經過ssh克隆倉庫了:
$ git clone git@server:/srv/sample.git Cloning into 'sample'... warning: You appear to have cloned an empty repository.
而後,就能夠正常推送了:
$ touch README $ git add README $ git commit -m "add readme" $ git push origin master Counting objects: 3, done. Writing objects: 100% (3/3), 212 bytes, done. Total 3 (delta 0), reused 0 (delta 0) To git@ubuntu:/srv/sample.git * [new branch] master -> master