1. 程式人生 > >在linux中搭建自己的git倉庫

在linux中搭建自己的git倉庫

在之前的一篇文章中羅列出了git常用的命令和場景,之前的git命令學習是基於碼雲或者github其他第三方託管平臺,當然也可以在自己伺服器上搭建git倉庫,自行管理自己的專案程式碼。這樣安全性有保證了,可是也失去了第三方託管平臺的圖形化介面操作的便捷。以下步驟也可以在虛擬機器中嘗試

流程:

  1. 在linux上安裝git
  2. 在linux中新建一個git使用者
  3. 建立ssh證書
  4. 匯入ssh證書
  5. 選定一個空目錄作為程式碼倉庫
  6. 更改git命令的所有者
  7. 禁止ssh登入伺服器

大概流程清楚後,下面開始實戰:

在linux上安裝git

使用命令:yum install git

建立一個git使用者

輸入:adduser git

建立ssh證書


*這裡建立ssh證書,是在本地建立,而不是在伺服器端建立的。這個需要注意。以win為例,開啟git命令面板,

        1、先配置使用者名稱和郵箱:(如果已經配置了則跳過)
  git config --global user.name '你的名稱'
  git config --global user.email '你的郵箱地址'

2、然後生成公鑰和私鑰

 ssh-keygen -t rsa -C "你的郵箱地址"

回車後會看到以下介面。這裡是選擇ssh檔案儲存的路徑(直接回車),我選擇預設路徑,即最後一行顯示的、 儲存在了c盤的這個位置中(c/user/Jioho/.ssh/id_rsa)。


緊接著會讓你輸入密碼(會有2次確認,簡短的英語很好理解的)。預設保持不輸入(也是直接回車,避免每次clone程式碼都需要輸入密碼的麻煩)


成功執行後會看到這樣的介面:


然後我們到剛才提示的c盤的目錄中,找到我們需要的ssh檔案。(之前一直找不到對應的資料夾,是因為C盤中的user的中文別名叫“使用者”,所以C:/user/  其實就是 C:/使用者/)。開啟資料夾後,裡面會有2份檔案,分別為公鑰和私鑰。


當然可以使用文字編輯器開啟ssh公鑰檢視裡面的內容(不推薦使用記事本直接開啟,原因不多作解釋)

這時候我們就需要把id_rsa.pub檔案放到伺服器上,準備下一步的工作。這裡我使用的是Winscp工具。把檔案放在伺服器任意地方都可以,只要自己找得到就行。

匯入自己的SSH證書

以上生成SSH證書的步驟弄懂後,就需要把自己的ssh公鑰證書匯入伺服器的公鑰管理的地方

在伺服器中找到  /home/git/.ssh/authorized_keys檔案、如果沒有就自己建立一個authorized_keys檔案,注意路徑不要弄錯。

找到剛才放在伺服器上的 id_rsa.pub檔案。然後使用命令:cat id_rsa.pub >> authorized_keys

注意路徑不要弄錯,因為我這是在 /home/git/.ssh/ 的目錄中了

(如果linux命令用的不熟的,其實可以直接使用winscp編輯檔案,把id_rsa.pub檔案的內容複製貼上到authorized_keys檔案中。方法不是唯一)

最重要的一點,也是最容易出錯的一點!linux一切皆檔案,所以要給對應的檔案設定好組和許可權!!

*注:這裡的/home/git/下的檔案所有者必須都為git  .ssh的許可權為最少700或者755  authorized_keys許可權最少為600

建立一個倉庫目錄

選定一個空目錄作為倉庫  這裡選擇  /srv 目錄。切換到 /srv 目錄下

執行命令 :  git init --bare test.git   (這樣就建立了一個名叫 “test”的git倉庫了)

更改倉庫所有者和許可權

chown -R git:git test.git  (“因為我的倉庫名稱叫test,所以可以根據自己的倉庫名稱進行修改”,倉庫的所有者應該為git。 )即步驟2建立的git使用者

禁止linux使用git的ssh登入

這裡禁止的意義是為了伺服器的安全性,避免從git的ssh可以直接登入伺服器

編輯/etc/passwd檔案
找到 : git:x:1001:1001:,,,:/home/git:/bin/bash

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

*可能用到的命令:修改ssh後,有可能需要重啟ssh才能生效
SSH重啟: service sshd restart
SSH啟動: service sshd start

以上步驟都完成後,就可以試下把伺服器的程式碼clone下來了。由於是在自己伺服器搭建的git環境,所以git檔案的url如下:

[email protected]ip地址:/srv/test.git

ip地址很好理解,而url後面的  /srv/test.git  則是git檔案在伺服器上的位置,如果倉庫在其他目錄,那麼/srv/test.git換成你對應的檔案目錄即可。

確認專案路徑沒錯後,回車進行clone。這時候會看到一句警告

warning: You appear to have cloned an empty repository.
不要慌張,其實仔細一看,只是git提示我們:你似乎clone了一個空的專案。開啟克隆下來的資料夾,檢視是否有一個.git的隱藏檔案。如果有的話,那就是已經clone成功,那也代表著linux搭建自己的git服務成功了!然後就可以進行愉快的開發了。具體的git常用命令在我的部落格另外一篇文章中也有提到,感興趣的也可以看看! git命令

相關推薦

linux搭建自己git倉庫

在之前的一篇文章中羅列出了git常用的命令和場景,之前的git命令學習是基於碼雲或者github其他第三方託管平臺,當然也可以在自己伺服器上搭建git倉庫,自行管理自己的專案程式碼。這樣安全性有保證了,可是也失去了第三方託管平臺的圖形化介面操作的便捷。以下步驟也可以在虛擬機器

linux搭建自己的個人網站

首先在你的虛擬機器中配置ip地址(hostonly模式下)          在命令列中輸入          [[email protected]/]# vim /etc/sysconf

Linux搭建私有Git伺服器並建立私有遠端倉庫

       遠端倉庫實際上和本地倉庫沒啥不同,純粹為了 7x24 小時開機並交換大家的修改。GitHub 是一個免費託管開原始碼的遠端倉庫; 但是對於某些資原始碼(如生命的商業公司來說),不想公開原始碼, 可以自己搭建一臺 Git 伺服器作為私有倉庫使用。

Linux搭建自己Git伺服器

首先需要裝好CentOS系統,作為測試,你可以選擇裝在虛擬機器上,這樣比較方便。這步預設你會,就不講了。 有了CentOS,那麼如何搭建Git伺服器呢? 1、首先需要安裝Git,可以使用yum源線上安裝: [[email protected] Desk

在CentOS搭建自己的VPN

密碼 技術 國外 get 是我 時間 out span 主機 很多人都有買國外的VPN看視頻的經歷,今天我們就講一講如何搭建一個自己的VPN。下面是我在CentOS中搭建自己的VPN的過程,簡單說來,主要分為兩步: 1:購買國外的VPS 2:在購買的VPS上搭建VPN

Linux搭建FTP服務器

包括 1.3 禁用 光驅 沒有 其他 serve idt 終端 在Linux中搭建一個ftp服務器,以供兩個工作小組保管文件使用。禁用匿名。第一個小組使用ftp賬號:ftp1,工作目錄在:/var/ftp/ftp1;第二個小組使用ftp2,工作目錄在:/var/ftp/ft

Linux搭建一個ftp服務器詳解

使用 -o /etc 架設 /etc/ pam.d apache服務器 傳輸數據 ftp服務器 來源:Linux社區 作者:luzhi1024 詳解Linux中搭建一個ftp服務器。 ftp工作是會啟動兩個通道:控制通道 , 數據通道在ftp協議中,控制連接均是由客戶端發

linux搭建postfix郵箱服務

fc7 rfc 位置 internet fad 主配置文件 監聽 master ice 介紹 postfix是Wietse Venema在IBM的GPL協議之下開發的MTA(郵件傳輸代理)軟件。postfix是Wietse Venema想要為使用最廣泛的sendmail提

linux搭建ftp服務配置

img 服務 文件創建 c4c 分享圖片 設置 bdc 登陸 size Liunx ftp搭建設置本地用戶權限 查看用戶列表發現root在裏面,在裏面的無法登陸FTP服務器,所以要刪除查看vsftpd服務刪除root管理用戶因為匿名用戶登錄為root無法進行文件創建

Windows和Linux搭建PostgreSQL原始碼除錯環境

本文使用Xming、Putty和VMWare幾款工具,在Windows桌面環境呼叫Ubuntu虛擬機器上的圖形介面進行PostgreSQL原始碼的除錯。文中的所有步驟適合真機Ubuntu系統,只是所有圖形介面的呼叫是在Windows桌面環境下。這樣做,和直接在Ubuntu虛擬機器中進行除錯,並沒有什麼區別,只

Linux搭建vsftp服務

vsftp簡介 安全性是編寫VSFTP的初衷,除了這與生俱來的安全特性以外,高速與高穩定性也是VSFTP的兩個重要特點。 在速度方面,使用ASCII程式碼的模式下載資料時,VSFTP的速度是Wu-FTP的兩倍,如果Linux主機使用2.4.*的核心,在千兆乙太網上的下載速度可達86

Activiti6.0流程引擎學習——(2)linux搭建環境使用sdkman安裝java(圖文結合)

接下來開始搭建Activiti的環境,由上篇部落格:https://blog.csdn.net/JJBOOM425/article/details/84784509   中可以知道我們要安裝jdk、tomcat。這裡演示的是在centOS7中搭建環境。好了,廢話不說開始部署。

linux搭建郵件伺服器

郵件伺服器概述 使用Email很容易,但是Internet的郵件系統是通過很複雜的幾個系統組成的,對於終端使用者而言,我們熟悉的Outlook,Foxmail等都是用來收信和發信的,稱之為MUA:Mail User Agent,郵件使用者代理。 MUA並非直接將郵件傳送至收件人手中,而是通過

linux搭建HTTP伺服器

WEB的概念 web是一種互動式圖形式介面的Internet服務,有強大的資訊連線功能,通過超文字連結( HyperText ) 的 方式,將資訊通過 Internet 傳遞到全球每個角落!一般情況下,終端使用者通過瀏覽器輸入比較完整的URL即可以完成訪問。 HTTP服務原理 分為四個步驟:

linux搭建SAMBA伺服器

1、Samba,是在Unix上實現SMB(Server Message Block)的一個工具套件。而SMB通常是windows用來實現共享的,包括檔案和印表機等。而Unix上裝上SMB,則使得Unix能夠和 windows連線在一起,實現兩者的資源互通。 安裝配置samba伺服器 關閉防火

linux搭建NFS伺服器

NFS是Network File System(網路檔案系統)。主要功能是通過網路讓不同的伺服器之間可以共享檔案或者目錄。NFS客戶端一般是應用伺服器(比如web,負載均衡等),可以通過掛載的方式將NFS伺服器端共享的目錄掛載到NFS客戶端本地的目錄下 NFS 的基本原則是“允許不同的客

linux搭建FTP服務

FTP伺服器 檔案傳輸協議(File Transfer Protocol)是用於在網路上進行檔案傳輸的一套標準協議,使用客戶/伺服器模式。專門用來傳輸檔案的協議 工作原理:FTP是一種在網際網路中進行檔案傳輸的協議,基於客戶端/伺服器模式,預設使用20、21號埠,其中埠20(資料埠)用於進行

linux搭建DHCP伺服器

動態主機配置協議DHCP(Dynamic Host Configuration Protocol)是一種用於集中對使用者IP地址進行動態管理和配置的技術。 工作原理 1.客戶端開機沒有IP,區域網內需要傳送一個廣播形式的DISCOVER(區域網內不知道誰是DHCP伺服器),只要能收到的DH

Linux搭建Maven私服

linux安裝maven 先解壓maven的壓縮包apache-maven-3.5.4-bin.tar.gz   命令: tar -zavf pache-maven-3.5.4-bin.tar.gz 然後編輯linux的環境變數屬性:vim etc/profile 在末尾新增如下程式碼 export

Linux搭建DNS伺服器

DNS(Domain Name Ststem) 域名解析服務,就是將域名和ip之間做相應的轉換,利用TCP和UDP的53號埠 程式RPM包名:  bind  可執行檔案所在目錄: /usr/sbin/named (Rhel7)     /etc/init.d/named (