centOs安裝Git伺服器 親測可用

2021-08-08 02:31:53 字數 2720 閱讀 8532

首先需要裝好centos系統,作為測試,你可以選擇裝在虛擬機器上,這樣比較方便。這步預設你會,就不講了。

有了centos,那麼如何搭建git伺服器呢?

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

2、建立乙個git使用者,用來執行git服務

# adduser git

3、初始化git倉庫:這裡我們選擇/data/git/learngit.git來作為我們的git倉庫

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

執行以上命令,會建立乙個裸倉庫,裸倉庫沒有工作區,因為伺服器上的git倉庫純粹是為了共享,所以不讓使用者直接登入到伺服器上去改工作區,並且伺服器上的git倉庫通常都以.git結尾。然後,把owner改為git:

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

4、在這裡,git伺服器就已經搭得差不多了。下面我們在客戶端clone一下遠端倉庫

zhu@*** /e/testgit/8.34$ git clone [email protected]:/data/git/learngit.gitcloning 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)? yeswarning: permanently added '192.168.8.34' (rsa) to the list of known [email protected]'s password:

這裡兩點需要注意:第一,當你第一次使用git的clone或者push命令連線github時,會得到乙個警告:

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)?

這是因為git使用ssh連線,而ssh連線在第一次驗證github伺服器的key時,需要你確認github的key的指紋資訊是否真的來自github的伺服器,輸入yes回車即可。

git會輸出乙個警告,告訴你已經把github的key新增到本機的乙個信任列表裡了:

warning: permanently added 'github.com' (rsa) to the list of known hosts.

這個警告只會出現一次,後面的操作就不會有任何警告了。

如果你實在擔心有人冒充github伺服器,輸入yes前可以對照github的rsa key的指紋資訊是否與ssh連線給出的一致。

第二,這裡提示你輸入密碼才能clone,當然如果你知道密碼,可以鍵入密碼來進行clone,但是更為常見的方式,是利用ssh的公鑰來完成驗證。

5、建立ssh key

首先在使用者主目錄下,看看有沒有.ssh目錄,如果有,再看看這個目錄下有沒有id_rsa和id_rsa.pub這兩個檔案,如果已經有了,可直接跳到下一步。如果沒有,開啟shell(windows下開啟git bash),建立ssh key:

$ ssh-keygen -t rsa -c "[email protected]"

你需要把郵件位址換成你自己的郵件位址,然後一路回車,使用預設值即可,由於這個key也不是用於軍事目的,所以也無需設定密碼。

如果一切順利的話,可以在使用者主目錄裡找到.ssh目錄,裡面有id_rsa和id_rsa.pub兩個檔案,這兩個就是ssh key的秘鑰對,id_rsa是私鑰,不能洩露出去,id_rsa.pub是公鑰,可以放心地告訴任何人。

6、git伺服器開啟rsa認證

然後就可以去git伺服器上新增你的公鑰用來驗證你的資訊了。在git伺服器上首先需要將/etc/ssh/sshd_config中將rsa認證開啟,即:

1.rsaauthentication yes 2.pubkeyauthentication yes 3.authorizedkeysfile .ssh/authorized_keys

這裡我們可以看到公鑰存放在.ssh/authorized_keys檔案中。所以我們在/home/git下建立.ssh目錄,然後建立authorized_keys檔案,並將剛生成的公鑰匯入進去。

然後再次clone的時候,或者是之後push的時候,就不需要再輸入密碼了:

7、禁用git使用者的shell登陸

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每次一登入就自動退出。

CentOS伺服器下安裝git

本文環境centos6.8的虛擬機器 centos6.10的阿里雲伺服器 在虛擬機器命令列中輸入 ssh root 1.1.1.1 這裡的1.1.1.1就是你的伺服器公網ip位址 輸入密碼進入伺服器 新建資料夾 cd mkdir developer cd developer mkdir setup ...

CentOS 7 安裝git伺服器

yum y install gituseradd git passwd git 建立git目錄和乙個空git倉庫 cd mkdir home git cd home git git init bare test.git chown r git git test.gitgit clone git 19...

CentOS7 安裝 Git 伺服器

yum install curl devel expat devel gettext devel openssl devel zlib devel perl devel yum install git接下來我們 建立乙個git使用者組和使用者,用來執行git服務 groupadd git usera...