2021-05-12 14:32:11
在CentOS下搭建Git並可以通過Windows用戶端存取
親測在本地虛擬機器和遠端伺服器上無問題,如有不懂請留言。
注意事項:以下所有操作是在root許可權下操作的。
1.CentOS伺服器版本
centos6.5
2.首先安裝git,使用yum線上安裝
1 yum install -y git
安裝成功如圖所示
3.建立一個git使用者,來執行git服務
1 adduser git
4.建立git倉庫目錄並初始化
a.首先建立目錄:
1 mkdir -p /mydata/git/gitRepo.git
b.初始化git倉庫:
1 cd /mydata/git 2 git init --bare gitRepo.git
5.改變檔案的擁有著和群組
chown git:git gitRepo.git
原因:因為伺服器上的Git倉庫純粹是為了共用,所以不讓使用者直接登入到伺服器上去改工作區,並且伺服器上的Git倉庫通常都以.git結尾。
6.我們可以在用戶端clone一下遠端倉庫
注意:在window平台上需要安裝git工具
msysgit官網:https://git-for-windows.github.io/
雲盤下載:https://yunpan.cn/ckGKthxzFJ4RD 存取密碼 a01f
1 git clone git@IP:/mydata/git/gitRepo.git
這裡有兩點需要注意:第一、第一次使用Git的clone或者push連線git,會得到一個警告:
這是因為Git使用SSH連線,而SSH連線在第一次驗證GitHub伺服器的Key時,需要你確認GitHub的Key的指紋資訊是否真的來自GitHub的伺服器,輸入yes回車即可。
Git會輸出一個警告,告訴你已經把GitHub的Key新增到本機的一個信任列表裏了
這個警告只會出現一次,後面的操作就不會有任何警告了。
如果你實在擔心有人冒充GitHub伺服器,輸入yes前可以對照GitHub的RSA Key的指紋資訊是否與SSH連線給出的一致。
第二,這裡提示你輸入密碼才能clone,當然如果你知道密碼,可以鍵入密碼來進行clone,但是更為常見的方式,是利用SSH的公鑰來完成驗證。
7.建立SSH key
首先在使用者主目錄(window一般在C槽,使用者檔案)下,看看有沒有.ssh目錄,如果有,再看看這個目錄下有沒有id_rsa和id_rsa.pub這兩個檔案,如果已經有了,可直接跳到下一步。如果沒有,開啟Shell(Windows下開啟Git Bash),建立SSH Key:
如果一切順利的話,可以在使用者主目錄裡找到.ssh目錄,裡面有id_rsa和id_rsa.pub兩個檔案,這兩個就是SSH Key的秘鑰對,id_rsa是私鑰,不能洩露出去,id_rsa.pub是公鑰,可以放心地告訴任何人。
1 ssh-keygen -t rsa -C "youremail@example.com"
8.Git伺服器開啟RAS認證
1 vim /etc/ssh/sshd_config
修改:
1.RSAAuthentication yes
2.PubkeyAuthentication yes
3.AuthorizedKeysFile .ssh/authorized_keys
如圖所示:
這裡我們可以看到公鑰存放在.ssh/authorized_keys檔案中。所以我們在/home/git下建立.ssh目錄,然後建立authorized_keys檔案,並將剛生成的公鑰匯入進去。(如果是虛擬機器中的Linux,可以通過ssh,連線本地虛擬機器。先用ifconfig看一下區域網中的ip,然後在ssh工具中進行連線。如圖所示檢視虛擬機器ip 192.168.130.134)
然後再次clone的時候,或者是之後push的時候,就不需要再輸入密碼了:
1 git clone git@192.168.130.134:/mydata/git/learngit.git
9.禁用git使用者shell登陸
出於安全考慮,第二步建立的git使用者不允許登入shell,這可以通過編輯/etc/passwd檔案完成。
1 vim /etc/passwd
找到類似下面的一行:
git:x:1001:1001:,,,:/home/git:/bin/bash
改為:
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
這樣,git使用者可以正常通過ssh使用git,但無法登入shell,因為我們為git使用者指定的git-shell每次一登入就自動退出。
相關文章