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

Centos7搭建git伺服器端

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

安裝git服務

1. # yum info git  //檢視 yum 源倉庫的 Git 資訊

這裡寫圖片描述

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

//依賴庫安裝
2. # yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
3. # yum install gcc perl-ExtUtils-MakeMaker

//解除安裝低版本的 Git
4. # yum remove git

//下載新版的 Git 原始碼包(我放的了  /usr/local/git 的目錄下了,git是我自己mkdir的目錄)
5. # cd git
6. # wget https://github.com/git/git/archive/v2.9.2.tar.gz
7. # tar -xzvf v2.9.2.tar.gz

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

8.  # cd git-2.9.2
9.  # make prefix=/usr/local/git all
10. # make prefix=/usr/local/git install

新增到環境變數

# vim /etc/profile  

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

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

# source /etc/profile   //使配置立即生效
# git --version  //檢視版本號

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

 # ln -s /usr/local/git/bin/git-upload-pack /usr/bin/git-upload-pack 

# ln -s /usr/local/git/bin/git-receive-pack /usr/bin/git-receive-pack 

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

# groupadd git
# useradd git -g git
# passwd git  #引數是使用者名稱
# su - git  //切換git使用者

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

至此,git服務安裝完成!

建立證書登入

新增證書之前,還要做這麼一步:
Git伺服器開啟RSA認證 。在Git伺服器上首先需要將/etc/ssh/sshd_config中的RSA認證開啟,即將sshd_config檔案中下面幾個的註釋解開:

1.RSAAuthentication yes

2.PubkeyAuthentication yes

3.AuthorizedKeysFile .ssh/authorized_keys

這裡我們可以看到公鑰存放在.ssh/authorized_keys檔案中。

所以我們在/home/git下建立.ssh目錄,然後建立authorized_keys檔案,

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

生成金鑰

(1)、設定使用者名稱和郵箱

[[email protected] ~]$ git config --global user.name '使用者名稱'
[[email protected] ~]$ git config --global user.email '郵箱地址'

(2)、檢視是否存在ssh keys

[[email protected] ~]$ cd ~/.ssh

若出現“No such file or directory”,則表示需要建立一個ssh keys。

(3)、 建立新的ssh keys

[[email protected] ~]$ ssh-keygen -t rsa -C "郵箱"

這裡寫圖片描述

(4)、測試一下連線

//檢視除錯資訊
[[email protected] ~]$ ssh -T -v [email protected] 

這裡寫圖片描述

以上資訊顯示連線github失敗,原因是因為我們沒有將新生成的金鑰加到我們的gitHub裡面,所以我們需要開啟authorized_keys.pub檔案,把裡面的內容拷貝到GitHub ,開啟連結 裡面Setting中的ssh and GPG key中,點選new ssh key把我們公鑰檔案id_rsa.pub的內容粘到key中,title隨意寫,儲存即可。

【注】也可以通過 cat ~/.ssh/authorized_keys.pub將公共金鑰輸出到控制檯,再進行拷貝

再次嘗試連線

[[email protected] ~]$ ssh -T [email protected]

這裡寫圖片描述

這是因為在本地計算機與 GitHub 建立連線的時候,實際上是本機計算機的 ssh-agent 與 GitHub 伺服器進行通訊。雖然本地計算機有了私鑰,但是 ssh-agent並不知道私鑰儲存在哪兒。因此,要想正常使用祕鑰對,需要先將私鑰加入到本地計算機的ssh-agent 中(新增過程中需要輸入 passphrase)
此時,可以通過

[[email protected] ~]$ ssh-add ~/.ssh/authorized_keys

如果,上述命令執行後,出現提示
Could not open a connection to your authentication agent.
那麼,

[[email protected] ~]$ eval `ssh-agent  -s` 
[[email protected] ~]$ ssh-add ~/.ssh/authorized_keys
[[email protected] ~]$ ssh-add -l  //檢視到當前計算機中儲存的金鑰
[[email protected] ~]$ ssh -T [email protected]

如果出現: Hi —! You’ve successfully authenticated, but GitHub does not provide shell access. 表明git服務搭建成功!

禁止Shell登入

因為搭建git伺服器後通常會建立一個git賬戶,其它人共用這個賬戶來克隆或推送資料到git倉庫中,通常也只需要這個功能,但是如果不加限制,那麼其它人可以通過這個git賬戶登入到主機,那麼這樣是不安全的,所以需要加以限制,即令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這個賬戶就只能用來克隆或者推送資料到git倉庫中了,而不能用它來登入到主機。
現在 git 使用者只能用 SSH 連線來推送和獲取 Git 倉庫,而不能直接使用主機 shell,因為我們為git使用者指定的git-shell每次一登入就自動退出,嘗試普通 SSH 登入的話,會看到下面這樣的拒絕資訊:

[[email protected] ~]# ssh [email protected]
[email protected]'s password:
Last login: Wed Jun 13 21:52:02 2018
fatal: Interactive git shell is not enabled.
hint: ~/git-shell-commands should exist and have read and execute access.
Connection to 192.168.25.133 closed.

管理大量使用者使用git許可權:gitosis

在/home/git/.ssh檔案中有authorized_keys檔案,這個檔案裡邊存放了需要使用git專案的使用者的公鑰,也就是允許誰可以git你的專案

適用於開發者較少的情況,如果開發者數量達到幾百人的規模時,管理起來十分費力,每次增加或刪除使用者時都必須登入到伺服器上去,而且還缺少必要的許可權管理,因為使用者對所有在/home/git下的git專案都擁有讀寫許可權。

其實gitosis這個東西和svnAdmin很像,gitosis是用來管理authorized_keys檔案和簡單連線限制的指令碼,而svnAdmin也是用來管理大量使用者使用svn的許可權的。新增、刪除使用者或設定許可權這些工作是通過管理一個特殊的git倉庫來實現的,你只需要在這個倉庫做好相應的設定,然後推送到伺服器上,gitosis就會隨之改變策略,聽起來不錯吧。

使用git命令把程式碼放到github上

1、把本地建立的倉庫,push到github遠端倉庫上:
(1)、首先登陸github,建立一個名為cv-template的repositories,克隆ssh地址;
(2)、建立倉庫目錄:

# cd /home/git
# mkdir cv-template
# cd cv-template
# git init  //初始化git倉庫
# ls -a   //顯示隱藏資料夾.git
操作後,會出現.git目錄,裡面會有相應的檔案;

(3)、配置git倉庫的使用者:

# git config --global user.name "github註冊的使用者名稱"

# git config --global user.mail "github註冊的郵箱"

(4)、新增遠端地址:

# git remote add origin [email protected]:github註冊的使用者名稱/github建立的倉庫名.git
# vim .git/config     
操作後,.git/config檔案內容會出現remote等內容;

(5)、在cv-template倉庫目錄下,建立檔案README:

# echo "readme" > README
# git add README  //新增到git可管理檔案跟蹤中

(6)、提交到本地倉庫:

# git commit -m 'first commit'   //first commit 只是作為描述,方便log查詢,不可省略

(7)、再push到遠端倉庫上

# git push -u origin master
# git push -f origin master  //強制上傳程式碼到github,解決衝突常用的方式

(8)、查詢git提交日誌

# git log

(9)、檢視git狀態

# git status

【注】如果後面又對本地倉庫中添加了一些程式碼檔案,可以通過以下命令提交:

# cd cv-template
# git add .   
add後面加了一個點,是想要提交所有檔案,如果想提交指定的檔案,可以寫檔名
# git commit –m “NowToDo_v1.0版本資訊”
# git push -u origin master

2、本地沒有建立倉庫,而在github上建立了一個test空倉庫
(1)、將遠端的空倉庫克隆到本地:

# cd /home/git
# git clone [email protected]:賬號名/test.git
執行後會在當前目錄生成一個github遠端倉庫名稱的目錄,再進入這個目錄裡面會自動建立.git目錄;

(2)、配置git全域性引數:

# git config --global user.name 'github註冊的使用者名稱'
# git config --global user.email 'github註冊的郵箱'
# git congit --list   //檢視git配置引數

(3)、新增git跟蹤檔案:

在當前目錄裡面,寫程式碼例如:在其目錄下新增檔案readme.txt
# git add readme.txt

(4)、提交到倉庫管理器中:

# git commit -m '提交的資訊標籤'

(5)、把本地倉庫中的檔案提交到github遠端倉庫中:

# git push origin master

在github上可驗證檔案是否存在。

相關推薦

Centos7搭建git伺服器

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

centos7git伺服器搭建

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

centos7搭建git伺服器(多使用者版)

建立倉庫並分享到組: git init --shared=group test 建立組: groupadd git 切換專案所屬組: chgrp -R git test 建立使用者1: useradd test1 -g git passwd test1 建立使用者2

CentOS7搭建Git伺服器簡易筆記

新年第一篇筆記。 昨天凌晨還沒睡醒就開始頭疼(舊疾,缺覺、感冒或者吃壞肚子都復發),要死要活的痛苦了一整天,直到晚上才勉強從床上爬了起來。 生活不易。 配了許多伺服器,今天才想起來為“CentOS7搭建Git伺服器”這件事做個筆記。 閒話不提,簡要步驟如下: 安裝Gi

centos7 搭建git伺服器

$ mkdir /d/project1 $ cd /d/project1 $ git init $ git add . $ git commit -a -m //“初始化專案project1″$ git push [email protected]:project1.git master //專案

Centos7搭建git伺服器和gitblit管理工具

GITBLIT_PATH=/home/git/gitblit-1.8.0 GITBLIT_BASE_FOLDER=/home/git/gitblit-1.8.0/data GITBLIT_HTTP_PORT=7070 GITBLIT_HTTPS_PORT=7071 GITBLIT_LOG=/home/git

centos7搭建git伺服器

目錄 環境: 安裝git和建立使用者 建立證書登入 初始化git倉庫 踩得坑 tortisegit使用 環境: centos7,git 1.8.3,tortisegit 安裝git和建立使用者 注:$代表用root使用者登入 # 安裝Git $ y

最詳細的CentOS7搭建git伺服器

第一步:升級|安裝git最新版 1. 檢視 yum 源倉庫的 Git 資訊: yum into git 可以看出,截至目前,yum 源倉庫中最新的 Git 版本才 1.8.3.1,而檢視最新的 Git 釋出版本,已經 2.9.2 了。 2. 依賴庫安裝 #

初學Git及簡單搭建git伺服器和客戶

在開發中,會經常碰到bug問題,那麼有了bug就需要修復,每個bug都可以通過一個臨時分支來修復,修復完成後,合併分支,然後將臨時的分支刪除掉。比如我在開發中接到一個404 bug時候,我們可以建立一個404分支來修復它,但是,當前的dev分支上的工作還沒有提交。 工作進行到一半時候,我們還無法提交,比如我這

搭建Git伺服器(Ubuntu虛擬機器)和windows客戶

         一直以來用Git都是用的別人的伺服器, 比如oschina 和github,  今天因為工作需要在自己的ubuntu上搭建了自己Git 伺服器, 以下記錄一些步驟和碰到的問題

Windows下搭建git伺服器,簡潔版,伺服器msysgit加copssh,客戶msysgit(原創)

在看了網上各種攻略之後,自己在windows環境下還是遇到了各種各樣的問題,什麼permission deny啊等等,去網上找解決方案呢,尼瑪找不到一個適用的,在折騰了一天後,終於搞定,在這裡上傳一篇解決方案,為遇到同樣問題的人提供一個參考,願你看到後能少走一些

基於Centos7 搭建svn服務,包含windows程式碼遷移到centos svn伺服器

一.Centos 安裝svn服務端 1.安裝 sodu許可權 #yum install subversion 2.建立版本倉庫目錄 建議設定/var/svn 為主目錄,如果設定其他路徑,建立自啟動之前需要修改 /etc/sysconfig/sv

阿里雲ecs伺服器(linux/centos7)開發教程(二):搭建git伺服器

伺服器端初始化操作 安裝git yum -y install git 檢視git版本(該版本不是最新版本,不礙事) git --

centos7 搭建openvpn伺服器

   OpenVPN是一個開原始碼的VPN應用程式,可讓您在公共網際網路上安全地建立和加入專用網路。相比pptp,openvpn更穩定、安全。   本篇部落格主要介紹下面兩點:   1. Centos 7下安裝與配置OpenVPN;   2. 客戶端連線OpenVPN伺服器

linux 使用gitblit搭建git伺服器

linux使用gitblit搭建git伺服器 安裝的過程不是很複雜,首先在官網下載gitblit的安裝包,下載版本為gitblit-1.8.0。 解壓檔案到當前路徑 tar -zxvf gitblit-1.8.0.tar.gz 配置在data下的defaults

CentOS7 搭建FTP伺服器

本文來記錄一下自己的虛擬機器CentOS7搭建FTP伺服器的過程 用到了vsftpd,如果沒有需要安裝 在開始搭建FTP伺服器之前,首先要確保本地和伺服器網路是通的,我測試的 本地IP:192.168.1.5 (Windows系統IP) 遠端IP:192.168.1.7 (虛擬機器IP)

centos7 搭建WEB伺服器

centos7 搭建WEB伺服器 2017年09月17日 09:44:50 逝然1994 閱讀數:18321 標籤: centosapacheweb伺服器 更多 個人分類:&nbs

自定義Git ~ 忽略特殊檔案.gitignore、配置別名、搭建Git伺服器(十八)

在 安裝 Git 一節中,我們已經配置了使用者名稱 user.name 和 Email 地址 user.email,實際上,Git還有很多可配置項。比如,讓 Git 顯示顏色,會讓 輸出的命令 看起來更醒目,如下: 這樣,Git 會適當地顯示不同的顏色,比如 git status

Linux下搭建Git伺服器 Jenkins持續整合環境部署

1、安裝Git 見 Jenkins持續整合環境部署 第四節 2、建立Git使用者和使用者組 1 groupadd git 2 useradd git -g git 3、建立證書切換到git使用者建立證書 1 su git 2 cd /home/git 3 mkdir .ssh 4 c

使用gitblit搭建git伺服器

前言 一直在學習新技術,我想都整理到部落格上。公司還在堅持用svn,之前學過git都快要忘記了,此篇部落格記錄搭建基於gitblit的git伺服器。當然直接使用linux也可以,不過我不是很熟悉,考慮到我的主語言是Java,也就用gitblit搭建了一個。 環境 Windows server 2016