Linux下搭建自己的Git伺服器
首先需要裝好CentOS系統,作為測試,你可以選擇裝在虛擬機器上,這樣比較方便。這步預設你會,就不講了。
有了CentOS,那麼如何搭建Git伺服器呢?
1、首先需要安裝Git,可以使用yum源線上安裝:
[[email protected] Desktop]# yum install -y git
2、建立一個git使用者,用來執行git服務
adduser git
3、初始化git倉庫:這裡我們選擇/data/git/learngit.git來作為我們的git倉庫
[[email protected] git]# git init --bare learngit.git Initialized empty Git repository in /data/git/learngit.git/
執行以上命令,會建立一個裸倉庫,裸倉庫沒有工作區,因為伺服器上的Git倉庫純粹是為了共享,所以不讓使用者直接登入到伺服器上去改工作區,並且伺服器上的Git倉庫通常都以.git結尾。然後,把owner改為git:
[[email protected] git]# chown git:git learngit.git
4、在這裡,Git伺服器就已經搭得差不多了。下面我們在客戶端clone一下遠端倉庫
[email protected] /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**的時候,就不需要再輸入密碼了:
[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.
7、禁用git使用者的shell登陸
出於安全考慮,第二步建立的git使用者不允許登入shell,這可以通過編輯**/etc/passwd**檔案完成。找到類似下面的一行:
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每次一登入就自動退出。
相關推薦
Linux下搭建自己的Git伺服器
首先需要裝好CentOS系統,作為測試,你可以選擇裝在虛擬機器上,這樣比較方便。這步預設你會,就不講了。 有了CentOS,那麼如何搭建Git伺服器呢? 1、首先需要安裝Git,可以使用yum源線上安裝: [[email protected] Desk
在Linux上搭建私有Git伺服器並建立私有遠端倉庫
遠端倉庫實際上和本地倉庫沒啥不同,純粹為了 7x24 小時開機並交換大家的修改。GitHub 是一個免費託管開原始碼的遠端倉庫; 但是對於某些資原始碼(如生命的商業公司來說),不想公開原始碼, 可以自己搭建一臺 Git 伺服器作為私有倉庫使用。
【linux】Linux下搭建ntp時間伺服器
NTP(Network Time Protocol)伺服器是用於區域網伺服器時間同步使用的,可以保證區域網所有的伺服器與時間伺服器的時間保持一致,應用於對時間實時性要求高的、必須統一時間事件。 NTP時間伺服器是一個簡單的常用的伺服器,在工作中我們只要做到會用、能搭建起來就
在Linux下搭建屬於你自己的git伺服器(MAC版)
環境說明 本地mac系統,一般都有git程式安裝(如果沒有則使用:brew install git) 伺服器版本是ubuntu-14.04 直入主題 使用mac終端遠端連線linux伺服器(命令:ssh [伺服器ip], 之後輸入伺服器密碼)預設都是ro
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
在 Linux 下搭建 Git 伺服器後如何新建專案和新增使用者
關於如何在Linux 下搭建 Git 伺服器的問題,大家可以參考這篇文章(https://www.cnblogs.com/dee0912/p/5815267.html)。 我按照上面文章內容操作,確實搭建完成Git伺服器後,但是又出現了一個問題,如何新建專案,並且把參與開發人員加到該專案呢?下面
【git】搭建git伺服器 在 Linux 下搭建 Git 伺服器
在 Linux 下搭建 Git 伺服器 目錄 ① 安裝 Git ② 伺服器端建立 git 使用者,用來管理 Git 服務,併為 git 使用者設定密碼 ③ 伺服器端建立 Git 倉庫 ④ 客戶端 clone 遠端倉庫 ⑤ 客
linux下搭建簡單的git伺服器測試1
這兩天沉迷PHP web伺服器開發不能自拔,但是php和html、js之類的程式要寫一點看一點效果,我是放到Linux雲主機上測試的,所以要在xshell上寫程式碼,很麻煩。 於是想自己在雲主機上搭建一個Git遠端倉庫,這樣我在windows端寫程式碼,寫好push一下就
linux下搭建git伺服器
環境: 伺服器 CentOS6.6 + git(version 1.7.1) 客戶端 Windows10 + git(version 2.8.4.windows.1) ① 安裝 Git Linux 做為伺服器端系統,Windows 作為客戶端系統,分別安裝 Git 伺服器端: ? 1
在 Linux 下搭建 Git 伺服器
環境: 伺服器 CentOS6.6 + git(version 1.7.1) 客戶端 Windows10 + git(version 2.8.4.windows.1)① 安裝 GitLinux 做為伺服器端系統,Windows 作為客戶端系統,分別安裝 Git伺服器端:#yu
linux下搭建git伺服器 許可權管理
1、新增git使用者 useradd -m git 2、修改git使用者密碼(密碼為git) passwd git 3、解壓git-1.7.12.2.tar.gz並安裝git tar -x
Linux 下搭建git 服務器
domain 目錄結構 倉庫 read -i shel for public git clone 環境: 服務器 centos7.3 +git1.8.3.1 客戶端 centos7.2 +git1.8.3.1服務器配置; 1.安裝git yum inst
在 Linux 下搭建 Git 服務器
root load sts etc print sha 文件 ash 項目 環境: 服務器 CentOS6.6 + git(version 1.7.1)客戶端 Windows10 + git(version 2.8.4.windows.1) ① 安裝 Git Li
linux下搭建我的世界spongeforge 伺服器 (海綿端)
以下我用的都是1.10.2版本 且以下用的伺服器連線管理軟體有WinSCP、Xshell 5 首先,去下載一個MC1.10.2的純淨服務端,這個不會很難,百度一下! 比如我下的檔案就叫minecraft_server.1.10.2.jar 然後我們在自己linux系統下的root資料夾
Linux下搭建DNS域名解析伺服器
一、技能目標 1、熟悉域名伺服器的各種角色2、學會構建主、從域名伺服器3、構建分離解析的域名伺服器 二、DNS服務簡介 1、DNS系統在網路中的作用就是一個維護著一個地址資料庫,其中記錄了各種主機的域名與IP地址的對應關係。2、DNS系統為客戶提供了正向或方向的地址查詢服務,及正向解析和方向解析,正向解
Linux下搭建Git服務器
list linux服務器 可視化 搭建git服務器 home chmod 版本控制 log 方法 1、安裝Git 見 Jenkins持續集成環境部署 第四節 2、創建Git用戶和用戶組 1 groupadd git 2 useradd git -g git 3、創建證
linux下搭建web和ftp伺服器
開啟終端,安裝vsftpd(sudo apt-get install vstfpd)。service vsftpd start開啟ftp,stop關閉ftp。 在瀏覽器開啟ftp://ftp主機ip地址//就能訪問ftp伺服器了 搭建簡易web框架 安裝apache sudo ap
Linux下搭建FTP伺服器(Ubuntu16.04)
搞了下FTP伺服器,基本上能遇到的問題都遇到了-。-! 先說步驟: 1.安裝vsftpd軟體包 sudo apt-get install vsftpd 2.開啟配置檔案 vim /etc/vsftpd.conf 3.修改引數 一些引數可以去掉註釋啟用,為了方便,
在Linux下搭建我的世界(Minecraft)伺服器
最近薅了百度雲雙12的羊毛,1核2G一年150。突然想起以前大學整個宿舍通宵開黑挖泥土的歲月,所以剛好趁著這臺伺服器,打算自己搭建一個我的世界伺服器,重溫一下以前的感覺。 系統要求 google到的MC系統要求: 1.CPU:雙核 2.記憶體:20-40人2GB,30-60人3GB,60
Linux下使用Jenkins+Git+Maven+碼雲搭建自動化部署,可遠端部署jar和war
寫在前面: 本教程為2臺全新阿里雲伺服器CentOS 6.8(以下稱搭建Jenkins的為第1臺伺服器,可訪問專案工程的為第2臺伺服器,以免混淆,沒有說明的都是在第1臺伺服器root目錄上操作,記得新增埠安全組和關閉防火牆),git倉庫使用的是碼雲。