1. 程式人生 > >搭建Git服務器

搭建Git服務器

round bare blog post chmod 公鑰 add col size

搭建簡單的Git服務器

搭建 Git 服務器最重要的是 .git 文件夾和裏面的內容,

創建一個裸倉庫:

$ git clone --bare my_project/.git  myproject.git

該命令等效於:

$ cp -Rf  my_project/.git  myproject.git

這樣就可以取出 倉庫 本身,而不是工作目錄

然後把 myproject.git 上傳到服務器上,若服務器上的路徑為 /src/myproject.git

$ git clone [email protected]:/src/myproject.git

通過這個命令就可以拷貝倉庫了。在這之前首先要在服務器上設置該 Git 倉庫可以共享:

$ cd /src/myproject.git
$ git init --bare --shared

另外,也可以用服務器上的 git 用戶在服務器上創建一個空的 git 倉庫,之後再在本地上將任意一個 git 倉庫 push 到服務器上。操作是類似的。

倉庫拷貝下來後就有所有的文件都會在當前的目錄下面,那麽就可以開始項目了。

之後的操作就像使用 GitHub 一樣,不過遠程倉庫並不是在 GitHub 上而是在私有的服務器上。

但是這樣的話,在每次 push 或者 pull 操作都需要輸入密碼。

搭建通過 SSH 訪問的 Git 服務器

首先在服務器上添加一個專門用於 git 訪問的用戶

$ sudo adduser git
$ su git
$ cd ~
$ mkdir .ssh && chmod 700 .ssh
$ touch .ssh/authorized_keys && chmod 600 .ssh/authorized_keys

這樣就創建了用戶 git,並且 git 在 /home 目錄下有自己的 HOME 目錄。

之後是在 git 的 HOME 目錄中創建 .ssh 文件夾和 authorized_keys 文件,權限設置為僅能 git 用戶訪問。

然後收集需要訪問該 Git 服務器上的用戶的公鑰,一般公鑰存放在 id_rsa.pub 文件中:

~/.ssh/id_rsa.pub

若 A 把自己的公鑰文件上傳到服務器上,用 git 用戶添加到 /home/git/.ssh/authorized_keys 這個文件中,那麽 A 就可以通過 SSH 訪問 git 倉庫,而不用再輸入密碼。

如果需要限制 git 用戶的 shell 訪問,可以將 /etc/passwd 文件中的 git 那一行的 /bin/bash 改成 /usr/bin/git-shell 就可以限制 git 用戶的 shell 登陸了。:

技術分享圖片

references:

服務器上的 Git - 在服務器上搭建 Git

服務器上的 Git - 配置服務器

搭建Git服務器