git服務器搭建及多用戶權限管理


簡單的git服務器搭建操作:

  1. 安裝git在服務器上
  2. 下載git客戶端在windos

服務器端操作:

  1. 查看要創建的用戶 id username
  2. 創建用戶: useradd username
  3. 設置用戶密碼:passwd username

服務器端創建倉庫然后把倉庫的owner修改為username

  1. 以/opt/git/gittest.git作為倉庫
  2. mkdir -p /opt/git
  3. git init --bare /opt/git/gittest.git
  4. cd /opt/git/
  5. chown -R account:group gittest.git/

客戶端clone 遠程倉庫

  1. 在客戶端目錄 D:\gittest\gittest_gitbash作為項目地址並進入
  2. git clone username@192.168.171.118:/opt/git/gittest.git 第一次的時候輸入yes即可
  3. 此時在C:\Users\用戶名\.ssh目錄下會出現known_hosts文件

客戶端創建ssh公鑰和私鑰

  1. ssh-keygen -t rsa -C "1114375070@qq.com"
  2. 連按三次enter(第一次是文件名,后兩次是提交代碼是需要輸入的密碼) 此時在 C:\Users\用戶名\.ssh 下會多出兩個文件 id_rsa 和 id_rsa.pub .   id_rsa 是私鑰。id_rsa.pub 是公鑰


服務器git 打開RSA認證

  1. 進入/etc/ssh/sshd_config 編輯打開下面三個注釋沒有的添加進去 RSAAuthentication yes
    PubkeyAuthentication yes
    AuthorizedKeysFile .ssh/authorized_keys
    保存退出
    重啟sshd服務
    systemctl restart sshd.service //(centos 7)

    由 AuthorizedKeysFile 得知公鑰的存放路徑是 .ssh/authorized_keys,實際上是 $Home/.ssh/authorized_keys,由於管理 Git 服務的用戶是 git,所以實際存放公鑰的路徑是 /home/git/.ssh/authorized_keys

    在 /home/git/ 下創建目錄 .ssh

    然后把 .ssh 文件夾的 owner 修改為 git
    chown -R git:git .ssh


    2.將客戶端公鑰導入服務端/home/git/.ssh/authorized_keys 文件
    回到git bash
    ssh username@192.168.171.118 'cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub
    //ssh gitAdmin@192.168.171.118 'cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub
    需要輸入服務端username 的密碼
    回到服務端查看.ssh下是否存在authorized_keys文件
    重要:每新建一個賬號都需要新建一個.ssh文件夾

修改 .ssh 目錄的權限為 700

修改 .ssh/authorized_keys 文件的權限為 600


14:客戶端在此clone遠程倉庫
git clone username@192.168.171.118:/opt/git/gittest.git

15:
⑨ 禁止 git 用戶 ssh 登錄服務器
之前在服務器端創建的 git 用戶不允許 ssh 登錄服務器

編輯 /etc/passwd

找到:

git:x:502:504::/home/git:/bin/bash
修改為

git:x:502:504::/home/git:/bin/git-shell
此時 git 用戶可以正常通過 ssh 使用 git,但無法通過 ssh 登錄系統。

參考:https://www.cnblogs.com/dee0912/p/5815267.html

刪除賬號:userdel username


git clone git@ip:path/gittest.git


這個需要在開發者電腦生成公鑰,然后上傳到git服務器上,保存在authorized_keys中。
首先在客戶端設置用戶名和郵箱,這個不不是登錄用戶,可以看做是一個別稱,用來跟蹤代碼提交記錄的
git config --global user.name "yangyangwang"

git config --global user.email wang839305939@outlook.com

 

 

本文總結了Linux添加或者刪除用戶和用戶組時常用的一些命令和參數。
1、建用戶:
adduser phpq //新建phpq用戶
passwd phpq //給phpq用戶設置密碼

2、建工作組
groupadd test //新建test工作組

3、新建用戶同時增加工作組
useradd -g test phpq //新建phpq用戶並增加到test工作組

注::-g 所屬組 -d 家目錄 -s 所用的SHELL

 

管理員賬號
gitAdmin:111111
git clone gitAdmin@192.168.171.118:/opt/dw/slaveDev/slave.git

--------------------------------------------------------------------------------------------------------------------------------------------

安裝git,使用yum源在線安裝
yum install -y git
初始化git倉庫,在/home/data/git/路徑下初始化一個空的倉庫gittest
git init --bare /home/data/git/gittest.git
到這里Git服務器就搭好了,而且有一個空的git倉庫。下面的工作就是添加用戶,因為看到各位大牛添加用戶都是通過密鑰實現的,這樣可以免密使用,而我自己感覺生成密鑰這個過程可能對開發人員來說是一件麻煩事(雖然只有一句命令),而且開發人員較少,所以決定添加用戶名密碼,服務器端管理員直接管理即可。不說廢話了,接着往下看。
創建用戶組gitgroup
groupadd gitgroup
創建用戶qixiao
useradd qixiao
為用戶設置密碼
passwd qixiao
禁用git用戶的shell登錄,防止用戶通過Git用戶登錄服務器。編輯/etc/路徑下的passwd文件,將文件后邊的bash改成git-shell,即

qixiao:x:1003:1003::/home/qixiao:/bin/bash
改成

qixiao:x:1003:1003::/home/qixiao:/bin/git-shell
將用戶qixiao添加到用戶組gitgroup
usermod -G gitgroup qixiao
修改git倉庫所在目錄/home/data/git/的用戶組為gitgroup
chgrp -R gitgroup /home/data/git/
寫到這里,用戶組對/home/data/git/路徑只有讀的權限,沒有寫的權限。上邊的配置都沒有什么問題,就這個權限折騰了一天,用戶組默認的權限是沒有寫權限的,配置好不能上傳代碼,問題就在用戶組的權限。
修改目錄及其子文件的權限
chmod -R 777 /home/data/git/

 

 

 

 


usermod -G groupname username (這種會把用戶從其他組中去掉,只屬於該組)
如:usermod -G git git (git只屬於git組)

usermod -a -G groupname username (把用戶添加到這個組,之前所屬組不影響)
如:usermod -a -G www git (git屬於之前git組,也屬於www組)

 


git 分支合並
主干分支一般不用來開發,開發一般在其他分支上(這是前提)
當其他分支的功能開發完畢以后,就需要將此功能合並到主干分支上,
暫時摸索出來的門路如下:
1:首先切換到其他分支要合並到的分支上去
2: 使用git merge 分支名字(待合並的分支)(此時會看到fast-forward,具體啥意思自己搜)
3:等待合並完成將其他分支刪除git branch -d 其它分支名字

以上操作會保持主干的粗壯性和枝繁葉茂


免責聲明!

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



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