搭建Git服務器
搭建簡單的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服務器