個人博客地址:https://www.vastyun.com
親測在本地虛擬機和遠程服務器上無問題,如有不懂請留言。
注意事項:以下所有操作是在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每次一登錄就自動退出。