如何在NAS上安裝Git Server


前段時間一時興起,買了一個NAS,具體型號是QNAP TS-269L。一方面用作硬盤存儲數據,另一方面為了方便就在上面搭了一個Git代碼服務器。下面詳述一下這個Git Server是如何搭建起來的。

  1. 安裝Optware IPKG。這個在QNAP官方的App Center里有提供,直接去安裝即可。
  2. 安裝Git。這里通過ipkg安裝的Git比較新。官方App Center里提供的git版本比較老。通過SSH登陸admin賬號后運行如下命令。
    ipkg update
    ipkg install git
  3. 初始化git服務器端倉庫。你的git倉庫務必存放在非系統自帶的目錄下,否則系統重啟之后數據會被抹掉(我嘗試了是這樣的)。假定服務器端git倉庫目錄為:/opt/repos,項目目錄為hets.git。通過SSH登陸admin賬號后運行如下命令。
    cd /opt/repos
    git init --bare hets.git
  4. 為NAS添加名稱為git的用戶和用戶群,用於所有的git倉庫訪問。這里最好通過NAS自帶的WEB界面創建用戶和用戶群,且git用戶無需其他目錄的權限。創建之后,通過WEB界面使用git用戶進行登陸,這樣NAS系統會自動設置好git用戶的默認目錄(這個目錄是/share/homes/git)。
  5. 更改git倉庫目錄的所有者為git用戶。運行如下命令。
    chown -R git:git /opt/repos
  6. 由於QNAP自帶的SSH server不允許除admin賬號以外的其他賬號使用SSH的方式連接系統,所以我們需要手動安裝OpenSSH。通過admin賬戶登陸Web管理頁面,修改系統自帶的SSH端口號22為22000或其他不沖突的值。這樣可以讓OpenSSH正常使用22端口來運行。
  7. 安裝OpenSSH並啟動服務。同樣需要通過系統原有的SSH server登陸admin賬號(通過參數 –P22000 來指定為修改后的端口號)。
    ipkg install openssh openssh-sftp-server
    /opt/etc/init.d/S40sshd start
  8. 再客戶端機器上通過git GUI工具生產SSH密鑰,並將公鑰(id_rsa.pub)添加到服務器端的認證文件里。在客戶端機器的git bash中運行如下命令。
    #將公鑰復制到NAS
    scp /c/Users/baib/.ssh/id_rsa.pub git@www.xxxxxx.net:/share/homes/git/id_rsa.pub
    #通過SSH登陸admin賬戶后運行如下命令。
    su git
    cd /share/homes/git
    mkdir .ssh
    cat ./id_rsa.pub >> /home/git/.ssh/authorized_keys
    rm ./id_rsa.pub
  9. 設置認證文件及其所在各級目錄的權限。由於SSH要求密鑰文件及其目錄的讀寫權限只能開放給當前用戶,否則無法通過密鑰進行認證,這樣每次登陸時還是需要輸入密碼。
    chown -R git:git /share/homes/git
    chmod 700 /share/homes/git
    chmod 700 /share/homes/git/.ssh
    chmod 600 /share/homes/git/.ssh/authorized_keys
  10. 這時,git客戶端應該已經可以訪問服務器端的倉庫了。在客戶端機器的git bash中運行如下命令。
    git clone git@www.xxxxxx.net:/opt/repos/hets.git
  11. 為了安全起見,禁止通過SSH來登陸git賬戶。修改/etc/passwd文件。找到行git:x:502:502:Linux User,,,:/home/git:/bin/sh修改為git:x:502:502:Linux User,,,:/home/git:/opt/bin/git-shell。如果不知道git-shell的具體路徑,可以使用which git-shell命令來獲得。
  12. 使用vim時如果報這個錯誤“E437: terminal capability "cm" required”,則先執行以下如下命令再使用vim即可。
    export TERM=xterm

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM