1. 程式人生 > >centos7下git伺服器端搭建

centos7下git伺服器端搭建

git的安裝:

yum 源倉庫裡的 Git 版本更新不及時,最新版本的 Git 是 1.8.3.1,但是官方最新版本已經到了 2.9.2。想要安裝最新版本的的 Git,只能下載原始碼進行安裝。

1. 檢視 yum 源倉庫的 Git 資訊:



1 # yum info git


可以看出,截至目前,yum 源倉庫中最新的 Git 版本才 1.8.3.1,而檢視最新的 Git 釋出版本,已經 2.9.2 了。

2. 依賴庫安裝

1 2 # yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel # yum install gcc perl-ExtUtils-MakeMaker


3. 解除安裝低版本的 Git

通過命令:git –-version 檢視系統帶的版本,Git 版本是: 1.8.3.1,所以先要解除安裝低版本的 Git,命令:

1 # yum remove git


4. 下載新版的 Git 原始碼包(我放的了  /usr/local/git 的目錄下了,git是我自己mkdir的目錄)

  進入:/usr/local下,新建git目錄:  # mkdir git 

  # cd git 

線上下載最新的原始碼包

1 # wget https://github.com/git/git/archive/v2.9.2.tar.gz


也可以離線下載,然後傳到 CentOS 系統中指定的目錄下。

5. 解壓當前目錄

1 # tar -xzvf v2.9.2.tar.gz


6. 安裝 Git

分別執行以下命令進行編譯安裝,編譯過程可能比較漫長,請耐心等待完成。

1 2 3 # cd git-2.9.2 # make prefix=/usr/local/git all # make prefix=/usr/local/git install


7. 新增到環境變數

vim /etc/profile  

#如果沒有vim,則安裝vim工具   yum install vim

新增這一條:   export PATH=”/usr/local/git/bin:$PATH” 

source /etc/profile   #是配置立即生效

8. 檢視版本號

1 2 # git –version git version 2.9.2


8. 將git設定為預設路徑,不然後面克隆時會報錯

[[email protected] code]$ ln -s /usr/local/git/bin/git-upload-pack /usr/bin/git-upload-pack 

[[email protected] code]$ ln -s /usr/local/git/bin/git-receive-pack /usr/bin/git-receive-pack 

至此,CentOS 就安裝上了最新版本的 Git。

第二步,建立一個git使用者組和使用者,用來執行git服務:

$ groupadd git
$ useradd git -g git
$ passwd git  #引數是使用者名稱

最好切換到git使用者 不然後面新建的git倉庫都要改許可權 煩煩煩!!

$ su - git 

第三步,建立證書登入:

備註:下邊虛線內容為多餘內容,只是留著存檔而已。於本教程沒有關係

新增證書之前,還要做這麼一步:

Git伺服器開啟RSA認證 。在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的時候,就不需要再輸入密碼了:

[email protected]/E/testgit/8.34 $ git clone [email protected]:/data/git/learngit.git Cloning into ‘learngit’… warning: You appear to have cloned an empty repository. Checking connectivity… done.

===============================

收集所有需要登入的使用者的公鑰,就是他們自己的id_rsa.pub檔案,把所有公鑰匯入到/home/git/.ssh/authorized_keys檔案裡,一行一個。

$ cd /home/git/
$ mkdir .ssh #新建資料夾
$ chmod 700 .ssh 
$ touch .ssh/authorized_keys  #新建檔案
$ chmod 600 .ssh/authorized_keys

第四步,初始化Git倉庫

$ cd /home/git
$ git init --bare test.git
Initialized empty Git repository in /home/git/test.git/

以上命令會建立一個空倉庫,伺服器上的Git倉庫通常都以.git結尾。

第五步、本地克隆倉庫

$ git clone [email protected]:test.git
Cloning into 'test'...
warning: You appear to have cloned an empty repository.
Checking connectivity... done.

your-ip 為您 Git 所在伺服器 ip 

用git clone 獲取伺服器上的程式碼

[[email protected] code]$ git clone [email protected]:/root/code.git 

報錯如下:

bash: git-upload-pack: command not found
fatal: The remote end hung up unexpectedly

什麼原因呢?原來程式碼伺服器【192.168.57.61】上的git安裝路徑是/usr/local/git,不是預設路徑,根據提示,在git伺服器192.168.57.61上, 建立連結檔案:

[[email protected] code]# ln -s /usr/local/git/bin/git-upload-pack /usr/bin/git-upload-pack 

再次,執行git clone ,果真可以了。

當然,如果無法修改git程式碼伺服器上配置,可以在clone時,新增–upload-pack選項來指定git伺服器上的git-upload-pack 路徑,達到上面相同的目的,如下所示:

[[email protected] code]$ git clone –upload-pack “/usr/local/git/bin/git-upload-pack” [email protected]:/root/code.git 

當然,也許你會遇到git-receive-pack 之類的錯誤,很有可能和這個原理是一樣的,請採用類似的操作即可

5.禁止Shell登入

出於安全考慮,git使用者不允許登入shell,這可以通過編輯/etc/passwd檔案完成。 
找到類似下面的一行:

git:x:502:502::/home/git:/bin/bash

改為

git:x:502:502::/home/git:/usr/local/git/bin/git-shell

這樣,git使用者可以正常通過ssh使用git,但無法登入shell,因為我們為git使用者指定的git-shell每次一登入就自動退出



參考文件:

相關推薦

centos7git伺服器搭建

git的安裝: yum 源倉庫裡的 Git 版本更新不及時,最新版本的 Git 是 1.8.3.1,但是官方最新版本已經到了 2.9.2。想要安裝最新版本的的 Git,只能下載原始碼進行安裝。

Win7Git服務搭建

命令行 tps java應用程序 java xxx tor config 初始 tin 1. 安裝jdk-8u172-windows-x64.exe,使用缺省設置安裝   兩個JRE:   C:\Program Files\Java\jdk1.8.0_172\jre :

CentOS7ftp伺服器搭建

    以前一直使用的ubuntu,這裡之所以使用CentOS是因為CentOS內部集成了SELinux,這裡就不對SELinux進行描述。 1. 安裝vsftpd         yum install -y vsftp

win7Git伺服器搭建

Git沒有客戶端伺服器端的概念,但是要共享Git倉庫,就需要用到SSH協議(FTP , HTTPS , SFTP等協議也能實現Git共享,此文件不討論),但是SSH有客戶端伺服器端,所以在windows下的開發要把自己的Git倉庫共享出去的話,就必 須做SSH伺服器。 一

VMWare虛擬機器中CentOS7ftp伺服器搭建(學習)

1、安裝vsftpd yum -y install vsftpd 2、更改配置檔案 100 chroot_local_user=YES //改為YES chroot_local_user=YES將所有使用者限定在主目錄內 101 chroot_lis

centos7git服務器搭建

cart div ash sta 執行 blog ruby 再次 發現 1、安裝GIT yum install git git --version接下來創建一個git用戶組和用戶,用來運行git服務: groupadd git adduser git -g git pass

CentOSGit伺服器搭建與客戶(windows和centos)搭建

一.伺服器端 1.yum安裝Git伺服器 yum install -y git 2.建立一個git使用者,用來執行git服務 useradd git 3.建立客戶端登入證書 注,收集所有需要登入的使用者的公鑰,就是他們自己生成的id_rsa.pub檔案,把所有公鑰複製到/

Centos7搭建git伺服器

【注】(yum 源倉庫裡的 Git 版本更新不及時,最新版本的 Git 是 1.8.3.1,但是官方最新版本已經到了 2.9.2。想要安裝最新版本的的 Git,只能下載原始碼進行安裝。) 安裝git服務 1. # yum info git //檢視 yum 源

搭建centos7 Nginx伺服器 將thinkPHP 專案放到Nginx出現404Not Found解決辦法

出現這個問題首先就是因為Nginx無法識別,當前的URL。即可能的,thinkPHP路由模式URL_model 0 (普通模式)1(pathinfo模式)2(rewrite模式) 3 (相容模式)預設是pathinfo模式。 首先開啟Nginx的配置檔案/usr/local/nginx/c

Linux(RHEL7及CentOS7DNS伺服器搭建與配置

一、基本概念 DNS即Domain Name System,域名系統,因特網上作為域名和IP地址相互對映的一個分散式資料庫,能夠使使用者更方便的訪問網際網路,而不用去記住能夠被機器直接讀取的IP數串。通過主機名,最終得到該主機名對應的IP地址的過程叫做域名解析

Centos7使用Squid快速搭建帶認證的HTTP代理伺服器

原文連結:https://blog.phpgao.com/squid_proxy_with_basic_auth.htmlI. 安裝安裝狠簡單!yum install squid -yyum install http-tools -yII. 生成密碼檔案mkdir /etc

centos7samba伺服器搭建

不喜歡linux的介面所以搭建一個samba伺服器 建立一個共享目錄 首先關閉firewall   (推薦 簡單方便)   systemctl stop firewalld   或則   firewall-cmd --zone=public --add-port=139/

linux(centos7SVN伺服器如何搭建

linux(centos)下SVN伺服器如何搭建?說到SVN伺服器,想必大家都知道,可以是在LINUX下如何搭建SVN伺服器呢?那麼今天給大家分享一下linux(centos)搭建SVN伺服器的思路! 雖然在windows上搭建SVN很簡單,但是效能卻不高,這

centos7的redis的搭建

停止 後臺 .com 自動啟動 人的 wget make conf 0.10 轉載:http://www.cnblogs.com/hd3013779515/p/6914824.html http://www.cnblogs.com/it-cen/p/42

centos7SVN服務器搭建

位置 安裝 -perm svn服務器搭建 fire 啟動 ups 所在 creat 1,安裝 yum install subversion 2,輸入rpm -ql subversion查看安裝位置 3,創建svn版本庫目錄 mkdir -p /var/svn/svnr

Windows環境Git環境的搭建

gpg key 文件 col 開始菜單 comm 是否 delete 安裝包 com 書看了一段時間,是時候開始維護自己的個人資料了。正所謂工欲善其事必先利其器,開發先從環境搭建開始。而環境搭建先從自己的GitHub賬號搞起。 首先,任何Git初學者應該先看一下廖雪峰老

centos7git版本升級

version scm remove ima perl ack software open index centos系統自帶的git版本過低,當使用git拉取、推送、克隆的時候可能會報錯,常見的錯誤: error: The requested URL returned er

Centos7git最新版本安裝

問題 新版本 col ref mir fix edge git源 並且 剛重新裝了centos7最小版的系統,發現沒有git,只好重新安裝了,記錄下以防忘記。 安裝方法有兩種: 一、yum命令安裝: sudo yum install -y git 此方法簡單,並且會

CentOS7使用 Seafile安裝搭建私有云盤

一、系統環境 二、安裝seafile 三、設定防火牆、selinux 設定SELinux[[email protected] ~]#vi /etc/selinux/config將SELINUX=enforcing改為SELINUX=disabled使selinux立即生效[[email&#

linux centos7 Nginx伺服器實現URL重寫去掉index.php方法,跟Apache還是不一樣的。

想要的URL :http://localhost/Admin/ 而自己的是http://localhost/index.php/Admin/ 方法: 在nginx配置檔案nginx.conf中新增: location / {   if ( !e $request_filename )