1. 程式人生 > >ubuntu14.04.1虛擬機器搭建git伺服器

ubuntu14.04.1虛擬機器搭建git伺服器

更新系統軟體庫的索引檔案

ubuntu:sudo apt-get update

安裝軟體

ubuntu:sudo apt-get install git-core openssh-server openssh-client

安裝Python的setuptools

ubuntu:sudo apt-get install python-setuptools

安裝gitosis

ubuntu:git config –global user.name “myname”
ubuntu: git config –global user.email “**@gmail.com”
ubuntu:git clone

https://github.com/res0nat0r/gitosis.git
ubuntu:cd ~/gitosis/
ubuntu:~/gitosis$ sudo python setup.py install

建立一個賬戶(git)作為git伺服器的管理員,可以管理其他使用者的專案許可權

ubuntu:~/gitosis$ sudo useradd -m git
ubuntu:~/gitosis$ sudo passwd git

在/home目錄下建立一個專案倉庫儲存點,並設定只有git使用者擁有所有許可權,其他使用者沒有任何許可權

ubuntu:~/gitosis$ sudo mkdir /home/gitrepository
ubuntu:~/gitosis$

sudo chown git:git /home/gitrepository/
ubuntu:~/gitosis$ sudo chmod 700 /home/gitrepository/

由於gitosis預設狀態下會將倉庫放在使用者的repositories目錄下,例如git使用者的倉庫地址預設在/home/git/repositories/目錄下,這裡我們需要建立一個連結對映。讓他指向我們前面建立的專門用於存放專案的倉庫目錄/home/gitrepository。

ubuntu:~/gitosis$ sudo ln -s /home/gitrepository /home/git/repositories

這裡我將在伺服器端生成ssh公鑰,如果想在其他機器上管理也可以在其他機器上生成一個ssh的公鑰

ubuntu:/home/git$ ssh-keygen -t rsa

初始化 gtosis ,需要通過自己的公鑰來執行gitosis-init

ubuntu:/home/git$ cp /home/yuanhcn/.ssh/id_rsa.pub /tmp/
ubuntu:/home/git$ sudo -H -u git gitosis-init < /tmp/id_rsa.pub
結果:
Initialized empty Git repository in /home/gitrepository/gitosis-admin.git/
Reinitialized existing Git repository in /home/gitrepository/gitosis-admin.git/

gitosis主要是通過gitosis-admin.git倉庫來管理一些配置檔案的,如使用者許可權的管理。這裡我們需要對其中的一個post-update檔案新增可執行的許可權

ubuntu:/home/git$ sudo chmod 755 /home/gitrepository/gitosis-admin.git/hooks/post-update

使用git賬戶在伺服器上建立一個目錄(mytestproject.git)並初始化成git專案倉庫

ubuntu:/home/git$ su git
[email protected]:~$ cd /home/gitrepository
[email protected]:/home/gitrepository$ mkdir mytestproject.git
[email protected]:/home/gitrepository$ git init –bare
[email protected]:/home/gitrepository$ exit

首先需要在前面生成ssh公鑰(用來初始化gitosis)的機器上將gitosis-admin.git的倉庫clone下來。在客戶端機器上新建一個目錄用於存放gitosis-admin.git倉庫

ubuntu:~$ mkdir gitadmin
ubuntu:~$ cd gitadmin/
ubuntu:~/gitadmin$ git clone [email protected]:gitosis-admin.git

clone下來會有一個gitosis.conf的配置檔案和一個keydir的目錄。gitosis.conf用於配置使用者的許可權資訊,keydir主要使用者存放ssh公鑰檔案(一般以“使用者名稱.pub”命名,gitosis.conf配置檔案中需使用相同使用者名稱),用於認證請求的客戶端機器。

現在讓需要授權的使用者使用前面的方式各自在其自己的機器上生成相應的ssh公鑰檔案,管理員把他們分別按使用者名稱命名好,複製到keydir目錄下。

繼續編輯gitosis.conf檔案
[gitosis]
[group gitosis-admin] ####管理員組

members = [email protected] ####管理員使用者名稱,需要在keydir目錄下找到相應的.pub檔案,多個可用空格隔開(下同)

writable = gitosis-admin####可寫的專案倉庫名,多個可用空格隔開(下同)

[group testwrite] ####可寫許可權組

members = zhangsan####組使用者

writable = mytestproject####可寫的專案倉庫名

[group testread]
####只讀許可權組

members =lisi####組使用者

readonly= mytestproject####只讀專案倉庫名

因為這些配置的修改只是在本地修改的,還需要推送到伺服器中才能生效。
ubuntu:~/gitadmin/gitosis-admin$ git add .
ubuntu:~/gitadmin/gitosis-admin$ git commit -am “add a user permission”
ubuntu:~/gitadmin/gitosis-admin$ git push origin master

如果新增的使用者不能立即生效,這時候需要重新啟動一下sshd服務
ubuntu:~/gitadmin/gitosis-admin$ sudo /etc/init.d/ssh restart

現在,服務端的git就已經安裝和配置完成了,接下來就需要有許可權的組成員在各自的機器上clone伺服器上的相應
專案倉庫進行相應的工作了。

客戶端(windows)使用git

下載安裝windows版本的git客戶端軟體,下載地址:http://msysgit.github.io/
安裝完成後右鍵選單會出現幾個git相關的選單選項,我們主要使用其中的git bash通過命令列來進行操作。
在本地新建一個目錄,使用git初始化這個目錄,然後再裡面新建一個文字檔案用於測試,最後關聯到git伺服器倉庫
中的相關專案,最後上傳本地版本到伺服器。
[sql] view plaincopyprint?在CODE上檢視程式碼片派生到我的程式碼片
$ mkdir testgit
$ cd testgit
$ git init
$ echo “this is a test text file,will push to server” > hello.txt
$ git add .
$ git commit -am “init a base version,add a first file for push to server”
$ git remote add origin [email protected]:mytestproject.git
$ git push origin master

這樣服務端就建立好了一個mytestproject.git的倉庫的基礎版本了,現在其他組員只要從服務端進行clone就可以
了。
window下面進入到需要克隆的本地目錄下面右鍵選擇git bash選項,輸入
[sql] view plaincopyprint?在CODE上檢視程式碼片派生到我的程式碼片
$ git clone [email protected]:mytestproject.git

就可以把專案clone到本地倉庫了。
下面進行簡單的修改和提交操作
[sql] view plaincopyprint?在CODE上檢視程式碼片派生到我的程式碼片
$ cd mytestproject
$ echo “this is another text file created by other” >another.txt
$ git add .
$ git commit -am “add a another file by other”
$ git push origin master

1、設定Git的user name和email:(如果是第一次的話)

$ git config --global user.name "humingx"
$ git config --global user.email "[email protected]"

2、生成金鑰

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

連續3個回車。如果不需要密碼的話。
最後得到了兩個檔案:id_rsa和id_rsa.pub。

如果不是第一次,就選擇overwrite.

3、新增金鑰到ssh-agent

確保 ssh-agent 是可用的。ssh-agent是一種控制用來儲存公鑰身份驗證所使用的私鑰的程式,其實ssh-agent就是一個金鑰管理器,執行ssh-agent以後,使用ssh-add將私鑰交給ssh-agent保管,其他程式需要身份驗證的時候可以將驗證申請交給ssh-agent來完成整個認證過程。

# start the ssh-agent in the background
eval "$(ssh-agent -s)"
Agent pid 59566

新增生成的 SSH key 到 ssh-agent。

$ ssh-add ~/.ssh/id_rsa

4、登陸Github, 新增 ssh 。

把id_rsa.pub檔案裡的內容複製到這裡

5、測試:

$ ssh -T [email protected]

你將會看到:

The authenticity of host 'github.com (207.97.227.239)' can't be established.
RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
Are you sure you want to continue connecting (yes/no)?

選擇 yes

Hi humingx! You've successfully authenticated, but GitHub does not provide shell access.

如果看到Hi後面是你的使用者名稱,就說明成功了。

6、修改.git資料夾下config中的url。
修改前

[remote "origin"]
url = https://github.com/humingx/humingx.github.io.git
fetch = +refs/heads/*:refs/remotes/origin/*

修改後

[remote "origin"]
url = [email protected]:humingx/humingx.github.io.git
fetch = +refs/heads/*:refs/remotes/origin/*

7、釋出

相關推薦

ubuntu14.04.1虛擬機器搭建git伺服器

更新系統軟體庫的索引檔案 ubuntu:sudo apt-get update 安裝軟體 ubuntu:sudo apt-get install git-core openssh-server openssh-client 安裝Pyth

Ubuntu 18.04.1 LTS下搭建git伺服器

sudo apt-get install git 安裝好git sudo adduser git 系統會提示設定密碼,此時請設定好你的密碼,還會要你設定email之類的此時可以按Enter回車預設為空 sudo vim /home/git/.ssh/authorized_keys 此時把你電腦裡

RedHat Linux 虛擬機器搭建VPN伺服器

模擬環境: Linux系統兩張網絡卡,模擬VPN伺服器一個接外網一個接內網。 Win7建立VPN連線連線到虛擬機器。 RedHat5 Linux VMware虛擬機器 虛擬機器帶兩張網絡卡,一個是VMNET8也就是NAT方式,另一個手動新增的一個網絡卡,VMNET2 H

伺服器】VMware Workstation Pro虛擬機器搭建本地伺服器CentOs7和寶塔面板(保姆式教程)

內容繁多,請耐心跟著流程走,在過程中遇到問題請在下面留言。 ## 前言 這幾天一直在複習**thinkphp5.1**,學習環境是**phpStudy8.1**,但是遇到了檔案有快取的問題(thinkphp5.1.39,修改檔案後重新整理沒有效果那種,需要隔幾分鐘才正常),百度也沒有解決方法,搞了幾天,一

Ubuntu14.04.5 TLS搭建Git伺服器筆記

1 傳輸協議說明 Git 可以使用四種主要的協議來傳輸資料:本地協議(Local),HTTP 協議,SSH(Secure Shell)協議及Git 協議。         我們這裡架設 Git 伺服器時使用 SSH 協議作為傳輸協議。 因為大多數環境下已經支援通過 SSH

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

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

記錄自己在centos虛擬機器搭建簡易git伺服器的過程,分享給大家

心血來潮,想自己搭建一個git開發環境, 奈何linux小白, git小白, 只好搜尋網上資源,整理到一起。 完成之後,發現自己的知識貧乏至極, 繼續努力學習才是王道。 我的真機安裝的是Windows 8專業版。 在vmware上安裝了centos6.3-64位,

ubuntu14.04搭建git伺服器、遠端倉庫、自動部署

搭建的過程中細節太多,也走了許多彎路,就不說了,主要談一談幾個注意點: 1、一定要學會看錯誤提示 從錯誤提示上可以看到很多東西,比如提示你哪兒哪兒許可權不夠,你就應該知道去改許可權 比較有用的兩個命令: chgrp -R [組名] [目錄] chmod -R g+rws

伺服器ubuntu18.04安裝虛擬機器並安裝centos6.8系統---2(Linux遠端VNCserver的安裝及桌面安裝)

上面說到在Ubuntu18.04上安裝了VMware,怎麼啟動呢? 直接命令列敲:vmware 報錯:DISPLAY is not set, unable to open the VMware Workstation user interface. 這是因為我們

使用3臺虛擬機器搭建Hadoop HA叢集(1

系列部落格目錄連結:Hadoop權威指南學習筆記:總章 基礎環境搭建:使用3臺虛擬機器搭建Hadoop HA叢集(1) HA環境搭建:使用3臺虛擬機器搭建Hadoop HA叢集(2) 工欲善其事,必先利其器,要學好大資料,就必須首先學會自己動手

騰訊雲伺服器虛擬機器搭建主從分離資料庫

測試環境 主資料庫: CentOS7, MySQL15.1 , 騰訊雲伺服器外網IP 從資料庫: CentOS7, MySQL15.1 , 虛擬機器IP(無關緊要) 首先安裝好mysql 我之前安裝的lnmp 所以挺多指令都挺簡單的 lnmp可以去百度安裝 我這裡

阿里雲虛擬機器搭建Hadoop-2.6.0-cdh5.7.1安裝詳解(偽分散式環境)

首先先搭配安全組 開啟映象後輸入以下內容:             重要:  yum -y install lrzsz HOSTNAME=(自己的主機名字) hostname $HOSTNAME echo "$(grep -E '127|::1' /etc/host

用Dynamips和虛擬機器搭建虛擬網路1

今天和大家分享一個虛擬網路的搭建過程,這個虛擬網路的具體拓撲如下: 路由器使用Dynamips,我們使用cisco 3660路由器,虛擬機器使用VMware和XP,物理機是Win10,Dynamips安裝在物理機Win10上,路由器模擬器的配置檔案下載地址如下: https://dow

ubuntu16.04 搭建git伺服器簡單教程

1.安裝git和ssh sudo apt-get install git sudo apt-get install openssh-server openssh-client 2.增加git使用者管理伺服器,設定密碼之後一直按回車鍵即可, sudo adduser g

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

一、Git簡介 Git是Linux建立人Linus Torvalds為了管理Linux 核心開發而開發的一個開源的分散式版本管理軟體。它和SVN的區別主要有以下幾點: 1、分散式 SVN是集中式,如果網路或伺服器出了問題,將不能提交任何改動。而使用Gi

Keepalived虛擬機器搭建(適用於真實伺服器

軟體介紹 什麼是負載均衡高可用 nginx作為負載均衡器,所有請求都到了nginx,可見nginx處於非常重點的位置,如果nginx伺服器宕機後端web服務將無法提供服務,影響嚴重。

第一次安裝ubuntu14.04.1 LTS X64 Server

linux之ubuntuUbunturoot 密碼設定Sudo passwd [email protected]/* */:~$ sudo passwd[sudo] password for linuxidc: 輸入新的UNIX 密碼:重新輸入新的UNIX 密碼:passwd:已成功更新密碼[em

linux 使用gitblit搭建git伺服器

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

Linux運維入門~1.虛擬機器使用

大家如果剛開始學習linux又沒有實踐的地方,推薦大家安裝使用VMware虛擬機器,百度搜索下載並安裝,一鍵解決所有問題。 接下來介紹虛擬機器使用方法,以linux系統中的虛擬機器為例: 本機中裝有兩臺虛擬機器:Desktop,Server 一  簡單使用虛擬機器 1

在linux上基於KVM虛擬機器搭建lamp

1.準備網路拓撲圖實現基於KVM的虛擬化,需要三臺kvm虛擬機器,分別安裝mysql,php-fpm,httpd,其次,需要在安裝php-fpm上安裝php-mysql,用來使php能夠連線上mysql資料庫,同時需要兩個虛擬網橋,以及一個物理橋用來保證外部與php-fpm伺服器的連線,同時保證mysql伺服