CentOS下搭建乙個Git伺服器

2021-08-15 06:28:11 字數 3002 閱讀 8746

首先需要裝好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.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.

[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的時候,就不需要再輸入密碼了:

zhu@***/e/testgit/8.34

$ git clone [email protected]:/data/git/learngit.git

cloning into 'learngit'...

checking connectivity... done.

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下搭建Sendmail郵件伺服器

搭建之前,先來介紹下環境 系統環境 centos 5.6 32bit 網域名稱 qiu.com 新增mx記錄 搭建之前,我們需要在dns 中新增 記錄 本例dns 伺服器位址為192.168.0.1 測試下是否生效3 配置sendmail 1 vi etc mail local host names...

Git使用教程 1 CentOS搭建Git伺服器

git是linux建立人linus torvalds為了管理linux 核心開發而開發的乙個開源的分布式版本管理軟體。它和svn的區別主要有以下幾點 1 分布式 svn是集中式,如果網路或伺服器出了問題,將不能提交任何改動。而使用git,則開發者可以隨時提交 到本地,即使網路或伺服器出了故障,git...

輕鬆搭建乙個自己的Windows SVN伺服器

目前較為簡單的方案是visualsvn server。該svn伺服器是免費的,支援windows nt,2000,xp and 2003等環境,安裝非常簡單。安裝的時候可以選擇svn走http協議還是https協議,http協議速度快一些,而https協議安全性好。兩者均可以從瀏覽器直接訪問svn專...