亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何在CentOS 6.3下使用Gitosis安裝搭建Git Server

發布時間:2021-07-29 18:35:47 來源:億速云 閱讀:117 作者:chen 欄目:系統運維

本篇內容介紹了“如何在CentOS 6.3下使用Gitosis安裝搭建Git Server”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

Git作為一個分布式的版本控制系統,使用git的時候,一般和服務器通訊使用的是ssh協議,用ssh的主要優點是速度快(傳輸前數據會先壓縮,比HTTP快),安全,方便讀寫。
 
客戶端通過ssh訪問服務器端的驗證方式一般有兩種,一種是用戶名密碼的方式,一種是使用公私鑰認證的方式. 使用公私鑰的方式比較方便,無需每次登錄輸入密碼。

某個受信任的客戶端的公鑰會被設置在服務器端的 ~/.ssh/authorized_keys文件中,有關此文件的格式可以參見 sshd的用戶手冊 man sshd . authorized_keys有個比較厲害的功能是 支持 command參數,使得每次用戶使用此公鑰進行驗證的時候執行此后面的命令.這樣就可以做一些邏輯處理了.

一般git庫的管理需要權限控制,如何方便簡單的進行庫的權限管理呢? authorized_keys是一個思路,指定特定command參數,每次驗證好用戶后首先執行相關邏輯,檢測當前用戶是否具有某個權限。 所以便有了gitosis,與其說gitosis是一個git權限管理系統,還不如說它是一個authorized_keys文件管理器.

解決方案:

環境部署

操作系統:              centos6.3 x64
Git:                         git-1.7.1
Gitosis:                   Gitosis
Gitweb:                   1.7.1-3        
OpenSSH Server:     openssh-server-5.3p1
apache:                  httpd-2.4.4
python-setuptools:   python-setuptools-0.6.10-3
        
Git server(centos6.3 x64): node2.example.com
Git client(centos6.3 x64): node1.example.com

server端配置:

一.關閉iptables和SELINUX

代碼如下:


# service iptables stop
# setenforce 0
# vi /etc/sysconfig/selinux
---------------
SELINUX=disabled
---------------

二.同步時間

代碼如下:


# ntpdate cn.pool.ntp.org

三.安裝apache

傳送門:http://www.mlszssj.com/article/54969.htm

四.安裝OpenSSH

1.yum安裝OpenSSH:

代碼如下:


# yum install openssh-server -y


2.修改ssh服務端配置:

代碼如下:


# vi /etc/ssh/sshd_config
——————————————————————————————
  Port 22 # 修改成你想要的登陸端口
  PermitRootLogin no # 禁止root用戶登陸
  StrictModes yes # 檢查密鑰的用戶和權限是否正確,默認打開的
  RSAAuthentication yes # 啟用 RSA 認證
  PubkeyAuthentication yes # 啟用公鑰認證
  PasswordAuthentication yes # 啟用密碼認證,默認是打開的
  ServerKeyBits 1024 # 修改后變為此狀態,將ServerKey強度改為1024比特
 PermitEmptyPasswords no # 修改后變為此狀態,禁止空密碼進行登錄
——————————————————————————————


3.重啟服務:

代碼如下:


# /etc/init.d/sshd restart

五.安裝Git

代碼如下:


# yum install git-core -y

六.安裝Gitosis

1.安裝Gitosis依賴python-setuptools包

代碼如下:


# yum install python-setuptools -y

2.安裝Gitosis

代碼如下:


# cd ~
# mkdir src
# cd src
# git clone https://github.com/tv42/gitosis.git
# cd gitosis
# python setup.py install

3.為gitosis創建系統用戶

代碼如下:


# useradd -m git
# passwd git

4. 運行gitosis

(1).將管理員生成的公鑰上傳或拷貝到服務器上。這里的公鑰需要在git服務器管理員下使用ssh-keygen命令來創建

代碼如下:


# su - git


保證web頁面有權限顯示該倉庫內容

代碼如下:


# chmod -R 755 /home/git
# ssh-keygen -t rsa
# cp ~/.ssh/id_rsa.pub /tmp

(2).初始化gitosis

進入到拷貝過來的id_rsa.pub所在目錄

代碼如下:


# cd /tmp
# gitosis-init < id_rsa.pub


此時,會在/home/git目錄下生成gitosis倉庫和配置目錄

代碼如下:


# cd /home/git
# ll
----------------------------------------------------------------
drwxr-xr-x 2 git git 4096 Aug 12 13:39 gitosis
drwxr-xr-x 4 git git 4096 Aug 12 13:39 repositories
---------------------------------------------------------------

(3).切換回當前(root)用戶

代碼如下:


# exit

(4).配置權限

如果想要別人能夠clone gitosis-admin.git,需要執行以下操作:

代碼如下:


# chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update


至此,gitosis的安裝工作已完成,其相關配置可以有管理員來操作,然后再提交到服務器上.

(5)現在可以試一下用初始化 Gitosis 的公鑰的擁有者身份 SSH 登錄服務器,應該會看到類似下面這樣:

代碼如下:


# su - git
$ ssh git@127.0.0.1
------------------------------------------------
PTY allocation request failed on channel 0
ERROR:gitosis.serve.main:Need SSH_ORIGINAL_COMMAND in environment.
 Connection to gitserver closed.
------------------------------------------------


說明 Gitosis 認出了該用戶的身份,但由于沒有運行任何 Git 命令,所以它切斷了連接。那么,現在運行一個實際的 Git 命令 &mdash; 克隆 Gitosis 的控制倉庫:
在你本地計算機上克隆git倉庫

代碼如下:


# cd /tmp
# git clone git@gitserver:gitosis-admin.git


這會得到一個名為 gitosis-admin 的工作目錄,主要由兩部分組成:
紅色為git倉庫配置,藍色為實際倉庫保存的文件

代碼如下:


# cd gitosis-admin
# ll -a
----------------------------------------------------------
total 20
drwxr-xr-x 4 git git 4096 Aug 12 13:21 .
drwxr-xr-x 4 git git 4096 Aug 12 13:23 ..
drwxr-xr-x 8 git git 4096 Aug 12 13:22 .git
-rwxr-xr-x 1 git git  157 Aug 12 13:21 gitosis.conf
drwxr-xr-x 2 git git 4096 Aug 12 13:20 keydir
-----------------------------------------------------------


以上操作相當于,系統git用戶初始化并成為gitosis管理員,且利用其管理員權限將gitosis-admin倉庫clone到本地.

5.添加本地用戶john和倉庫test到gitosis,并和管理員git合作管理gitosis

1. 用戶john添加并發送id_rsa.pub給git

代碼如下:


# su -
# useradd john & passwd john
# su - john
# ssh-keygen -t rsa
-----------------------------------------------------------
Generating public/private rsa key pair.
Enter file in which to save the key (/home/john/.ssh/id_rsa):
Created directory '/home/john/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/john/.ssh/id_rsa.
Your public key has been saved in /home/john/.ssh/id_rsa.pub.
-----------------------------------------------------------
# cp /home/john/.ssh/id_rsa.pub /tmp


2. gitosis管理員git分配john權限

代碼如下:


# su - git
# mkdir projects
# cd ~/projects
# git clone git@node2.example.com:gitosis-admin
# cd gitosis-admin
# cat gitosis.conf
------------------------------------------------
[gitosis]
[group gitosis-admin]
writable = gitosis-admin
members = git@node2.example.com
------------------------------------------------
# ls keydir/
-------------------------
git@node2.example.com.pub
-------------------------
# cp /tmp/id_rsa.pub keydir/john.pub
# vi gitosis.conf
&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;
[gitosis]
[group gitosis-admin]
writable = gitosis-admin
members = git@node2.example.com
[group test]
writable = test
members = git@node2.example.com john
&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;
# git add .
# git commit -am "add member john and project foo"
# git push

3. 用戶git添加項目test

代碼如下:


# su - git
# cd ~/projects
# mkdir test
# cd test
# git init
# echo "Hello World." > hello.txt
# git add hello.txt
# git commit -am 'first commit'
# git remote add origin git@node2.example.com:test.git
# git push origin master

4. 用戶 john clone test并修改hello.txt

代碼如下:


# su - john
# git clone git@node2.example.com:test.git
# cd test
# date >> hello.txt
# git commit -am 'add time to hello.txt' && git push

整個過程分為:

1.通過修改gitosis-admin管理gitosis用戶權限,需要clone到本地,然后修改配置文件,最后add push將結果推送到遠程實現權限修改.

2.添加系統用戶,生成該用戶公鑰,并將其復制到keydir下,實現該用戶有權限進行git等相關操作.

3.登陸該用戶賬戶進行git相關操作,修改完后commit,push到中服務器即可完成倉庫權限配置.

七.安裝gitweb

1.首先我們需要Git的源碼,其中帶有GitWeb,并能生成定制的CGI腳本:

代碼如下:


# git clone git://git.kernel.org/pub/scm/git/git.git
# cd git/
# make GITWEB_PROJECTROOT="/home/git/repositories" prefix=/usr gitweb      
# cp -rf gitweb /usr/local/apache2/htdocs/


注: 通過指定 GITWEB_PROJECTROOT 變量告訴編譯命令 Git 倉庫的位置

2.設置Apache以CGI方式運行該腳本,并添加一個VirtualHost配置:

(1).加載apache的vhost配置文件

代碼如下:


# vi /usr/local/apache2/conf/httpd.conf


搜索包含httpd-vhosts的行,并去掉該行注釋.
(2).加載cgid模塊,使其支持perl語言.

代碼如下:


# vi /usr/local/apache2/conf/httpd.conf


搜索包含mod_cgid.so的行,并去掉該行注釋.
(3).配置VirtualHost

代碼如下:


# vi /usr/local/apache2/conf/extra/httpd-vhosts.conf


添加如下配置:

代碼如下:


&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;
<VirtualHost *:80>
   ServerName git.example.com
   DocumentRoot /usr/local/apache2/htdocs/gitweb
   <Directory /usr/local/apache2/htdocs/gitweb>
       Options +ExecCGI
       AllowOverride All
       order allow,deny
       Allow from all
       AddHandler cgi-script cgi pl
       DirectoryIndex gitweb.cgi
   </Directory>
</VirtualHost>
&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;


(4).安裝Time/HiRes.pm perl模塊
首次打開web頁面報Can't locate Time/HiRes.pm in @INC &hellip;.錯誤
解決方法:

代碼如下:


# yum install perl-devel perl-CPAN -y
# perl -MCPAN -e shell
cpan[2]> install Time::HiRes
cpan[3]> exit


(5).重啟apache服務

代碼如下:


# /usr/local/apache2/bin/apachectl restart


(6).修改本機HOST,并打開gitweb頁面
http://git.example.com

如何在CentOS 6.3下使用Gitosis安裝搭建Git Server如何在CentOS 6.3下使用Gitosis安裝搭建Git Server

如何在CentOS 6.3下使用Gitosis安裝搭建Git Server

如何在CentOS 6.3下使用Gitosis安裝搭建Git Server

“如何在CentOS 6.3下使用Gitosis安裝搭建Git Server”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

山东| 西乌| 石棉县| 东明县| 信丰县| 岳池县| 富锦市| 藁城市| 神木县| 分宜县| 孟连| 宁阳县| 德兴市| 普兰县| 山东省| 宝坻区| 柘城县| 镇雄县| 景谷| 安新县| 黎城县| 涿鹿县| 金门县| 桂阳县| 桂林市| 新乡县| 七台河市| 广昌县| 乌拉特中旗| 阿拉善右旗| 泗阳县| 佳木斯市| 托里县| 远安县| 和顺县| 天全县| 定远县| 天峻县| 祁门县| 兴仁县| 健康|