溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Centos中怎么搭建私有Git服務(wù)器

發(fā)布時(shí)間:2022-02-17 09:51:13 來(lái)源:億速云 閱讀:170 作者:iii 欄目:開(kāi)發(fā)技術(shù)

這篇文章主要介紹了Centos中怎么搭建私有Git服務(wù)器的相關(guān)知識(shí),內(nèi)容詳細(xì)易懂,操作簡(jiǎn)單快捷,具有一定借鑒價(jià)值,相信大家閱讀完這篇Centos中怎么搭建私有Git服務(wù)器文章都會(huì)有所收獲,下面我們一起來(lái)看看吧。

GitHub就是一個(gè)免費(fèi)托管開(kāi)源代碼的遠(yuǎn)程倉(cāng)庫(kù)。但是對(duì)于某些視源代碼如生命的商業(yè)公司來(lái)說(shuō),既不想公開(kāi)源代碼,又舍不得給GitHub交保護(hù)費(fèi),那就只能自己搭建一臺(tái)Git服務(wù)器作為私有倉(cāng)庫(kù)使用。

Centos中怎么搭建私有Git服務(wù)器

1、首先需要安裝Git,可以使用yum源在線安裝:

[root@localhost Desktop]# yum install -y git

2、創(chuàng)建一個(gè)git用戶,用來(lái)運(yùn)行g(shù)it服務(wù)

adduser git

3、初始化git倉(cāng)庫(kù):

這里我們選擇/data/git/learngit.git來(lái)作為我們的git倉(cāng)庫(kù)

[root@localhost git]# git init --bare learngit.gitInitialized empty Git repository in /data/git/learngit.git/

執(zhí)行以上命令,會(huì)創(chuàng)建一個(gè)裸倉(cāng)庫(kù),裸倉(cāng)庫(kù)沒(méi)有工作區(qū),因?yàn)榉?wù)器上的Git倉(cāng)庫(kù)純粹是為了共享,所以不讓用戶直接登錄到服務(wù)器上去改工作區(qū),并且服務(wù)器上的Git倉(cāng)庫(kù)通常都以.git結(jié)尾。然后,把owner改為git:

[root@localhost git]# chown git:git learngit.git

4、在這里,Git服務(wù)器就已經(jīng)搭得差不多了。

下面我們?cè)诳蛻舳薱lone一下遠(yuǎn)程倉(cāng)庫(kù)

Zhu@XXX /E/testgit/8.34
$ git clone git@192.168.8.34:/data/git/learngit.git
Cloning into 'learngit'...
The authenticity of host '192.168.8.34 (192.168.8.34)' can't be established.
RSA key fingerprint is 2b:55:45:e7:4c:29:cc:05:33:78:03:bd:a8:cd:08:9d.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.8.34' (RSA) to the list of known hosts.
git@192.168.8.34's password:

這里兩點(diǎn)需要注意:第一,當(dāng)你第一次使用Git的clone或者push命令連接GitHub時(shí),會(huì)得到一個(gè)警告:

The authenticity of host 'github.com (xx.xx.xx.xx)' can't be established.
RSA key fingerprint is xx.xx.xx.xx.xx.
Are you sure you want to continue connecting (yes/no)?

這是因?yàn)镚it使用SSH連接,而SSH連接在第一次驗(yàn)證GitHub服務(wù)器的Key時(shí),需要你確認(rèn)GitHub的Key的指紋信息是否真的來(lái)自GitHub的服務(wù)器,輸入yes回車即可。 Git會(huì)輸出一個(gè)警告,告訴你已經(jīng)把GitHub的Key添加到本機(jī)的一個(gè)信任列表里了:

Warning: Permanently added 'github.com' (RSA) to the list of known hosts.

這個(gè)警告只會(huì)出現(xiàn)一次,后面的操作就不會(huì)有任何警告了。 如果你實(shí)在擔(dān)心有人冒充GitHub服務(wù)器,輸入yes前可以對(duì)照GitHub的RSA Key的指紋信息是否與SSH連接給出的一致。 第二,這里提示你輸入密碼才能clone,當(dāng)然如果你知道密碼,可以鍵入密碼來(lái)進(jìn)行clone,但是更為常見(jiàn)的方式,是利用SSH的公鑰來(lái)完成驗(yàn)證。

5、創(chuàng)建SSH Key

首先在用戶主目錄下,看看有沒(méi)有.ssh目錄,如果有,再看看這個(gè)目錄下有沒(méi)有id_rsa和id_rsa.pub這兩個(gè)文件,如果已經(jīng)有了,可直接跳到下一步。

如果沒(méi)有,打開(kāi)Shell(Windows下打開(kāi)Git Bash),創(chuàng)建SSH Key:

$ ssh-keygen -t rsa -C "youremail@example.com"

你需要把郵件地址換成你自己的郵件地址,然后一路回車,使用默認(rèn)值即可,由于這個(gè)Key也不是用于軍事目的,所以也無(wú)需設(shè)置密碼。 如果一切順利的話,可以在用戶主目錄里找到.ssh目錄,里面有id_rsa和id_rsa.pub兩個(gè)文件,這兩個(gè)就是SSH Key的秘鑰對(duì),id_rsa是私鑰,不能泄露出去,id_rsa.pub是公鑰,可以放心地告訴任何人。

6、在Git服務(wù)器打開(kāi)RSA認(rèn)證

然后就可以去Git服務(wù)器上添加你的公鑰用來(lái)驗(yàn)證你的信息了。

在Git服務(wù)器上首先需要將/etc/ssh/sshd_config中將RSA認(rèn)證打開(kāi),即:

1.RSAAuthentication yes
2.PubkeyAuthentication yes
3.AuthorizedKeysFile .ssh/authorized_keys

這里我們可以看到公鑰存放在.ssh/authorized_keys文件中。所以我們?cè)?home/git下創(chuàng)建.ssh目錄,然后創(chuàng)建authorized_keys文件,并將剛生成的公鑰導(dǎo)入進(jìn)去。 然后再次clone的時(shí)候,或者是之后push的時(shí)候,就不需要再輸入密碼了:

Zhu@XXX/E/testgit/8.34
$ git clone git@192.168.8.34:/data/git/learngit.git
Cloning into 'learngit'...
warning: You appear to have cloned an empty repository.
Checking connectivity... done.

7、禁用git用戶的shell登陸

出于安全考慮,第二步創(chuàng)建的git用戶不允許登錄shell,這可以通過(guò)編輯/etc/passwd文件完成。找到類似下面的一行:

git:x:1001:1001:,,,:/home/git:/bin/bash

最后一個(gè)冒號(hào)后改為:

git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell

這樣,git用戶可以正常通過(guò)ssh使用git,但無(wú)法登錄shell,因?yàn)槲覀優(yōu)間it用戶指定的git-shell每次一登錄就自動(dòng)退出。

關(guān)于“Centos中怎么搭建私有Git服務(wù)器”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對(duì)“Centos中怎么搭建私有Git服務(wù)器”知識(shí)都有一定的了解,大家如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI