日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

在centos 下安装配置基于gitosis 的git 服务

發布時間:2025/7/14 编程问答 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在centos 下安装配置基于gitosis 的git 服务 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言 這里我用的系統是centos 6.2,

在服務器上的準備工作(服務器IP為10.0.2.8 ):
1、安裝 openssh服務器與客戶端工具

[plain] view plaincopy
  • $?sudo?yum?install?openssh-server?openssh-client??

  • 2、創建個人公鑰和私鑰(用于后面的git服務的管理員管理)
    在默認用戶的主目錄路徑下,運行以下命令,按照提示創建公鑰和私鑰

    [plain] view plaincopy
  • $?ssh-keygen?-t?rsa??
  • 默認生成2048位,如果需要提高安全級別,也可以通過下面的命令創建公鑰和私鑰

    [html] view plaincopy
  • ssh-keygen?-t?rsa?-b?4096??
  • 默認情況下,公鑰和私鑰會保存在~/.ssh目錄下,如下所示:


    3、安裝 git服務器

    [plain] view plaincopy
  • $??sudo?yum?install?git-core??

  • 4、配置 git服務器
    創建git服務器管理用戶

    [plain] view plaincopy
  • $??sudo?useradd?-m?git???
  • $??sudo?passwd?git??
  • 創建git倉庫存儲目錄

    [plain] view plaincopy
  • $??sudo?mkdir?/home/git/repositories??
  • 設置git倉庫權限

    [plain] view plaincopy
  • $??sudo?chown?git:git?/home/git/repositories???
  • $??sudo?chmod?755?/home/git/repositories??

  • 初始化全局設置

    [plain] view plaincopy
  • $??git?config?--global?user.name?"myname"???
  • $??git?config?--global?user.email?"myname@server"??


  • 5、安裝python的setup tool?

    [plain] view plaincopy
  • $??sudo?yum?install?python-setuptools??

  • 6、獲取并安裝gitosis

    [plain] view plaincopy
  • $??cd?/tmp???
  • $??git?clone?git://eagain.net/gitosis.git?//測試時從這拿不到,可換成?git?clone?https://github.com/res0nat0r/gitosis.git????
  • $??cd?gitosis???
  • $??sudo?python?setup.py?install??

  • 7、配置gitosis

    [plain] view plaincopy
  • $??cp?~/.ssh/id_rsa.pub?/tmp?//上面第2步生成的公匙??
  • $??sudo?-H?-u?git?gitosis-init?<?/tmp/id_rsa.pub //將該公匙導入gitosis里,這時本機已經有了為git的管理權限了??
  • $??sudo?chmod?755?/home/git/repositories/gitosis-admin.git/hooks/post-update??
  • 為了git操作時不用輸入密碼,還要做以下配置

    [plain] view plaincopy
  • $??cat?/tmp/id_dsa.pub?>>?/home/git/.ssh/authorized_keys?//將root的公匙導入到git目錄的?authorized_keys文件中??
  • $??chmod?600?/home/git/.ssh/authorized_keys??
  • ???
  • ?

    8、管理gitosis配置

    [plain] view plaincopy
  • $?cd?~???
  • $?git?clone?git@hostname:/gitosis-admin.git???
  • $?cd?gitosis-admin/??
  • $?ls?-al??
  • 看到以下結果



    gitosis.conf是git倉庫與權限配文件,keydir目錄是存放其它客戶機的公匙目錄。

    如果無法git clone的話,可以使用git clone git@xxx:/home/git/repositories/gitosis-admin.git 如果在git push的時候,遇到錯誤“ddress 192.168.0.77 maps to bogon, but this does not map back to the address - POSSIBLE BREAK-IN ATTEMPT!”,解決為修改/etc/hosts文件,將ip地址與主機名對應關系寫進去就可以了。 [plain] view plaincopy
  • $??more?gitosis.conf??
  • gitosis.conf 對應的內容

    [plain] view plaincopy
  • [gitosis]??
  • ??
  • [group?gitosis-admin]??
  • writable?=?gitosis-admin??
  • members?=?root@localhost.localdomain??

  • 來這里git的服務已基本配置完畢,但要團隊開發中用起來還要進以下配置:

    在成員機(ip=10.0.2.100)上操上面第1與第2步生成自已的公匙,

    [html] view plaincopy
  • $??scp?.ssh/id_rsa.pub?root@10.0.2.8:~/gitosis-admin/keydir/tester.pub?//將本機的公匙copy到gitosis的keydir中??

  • 再切換到git服務上(ip=10.0.2.8)

    [plain] view plaincopy
  • $??cd?~??
  • $??cd?gitosis-admin??
  • $??cat?keydir/tester.pub?>>?/home/git/.ssh/authorized_keys?//將tester的公匙導入到git目錄的?authorized_keys文件中??
  • $?vi?gitosis.conf??
  • 修改gitosis.conf

    [plain] view plaincopy
  • [gitosis]??
  • [group?gitosis-admin]??
  • writable?=?gitosis-admin??
  • members?=?root@localhost.localdomain??
  • #加一個組myteam??
  • [group?myteam]??
  • members?=?tester?#這里的tester對上面公匙文件名??
  • writable?=?test_project?#項目倉庫名??
  • 提交到版本庫

    [plain] view plaincopy
  • $?git?add?keydir/tester.pub??
  • $?git?commit?-a?-m?"Allow?tester?write?access?to?test_project"??
  • $?git?push?origin?master??
  • 這時tester便有權限操作test_project倉庫了,回到成員機(ip=10.0.2.100)上

    [plain] view plaincopy
  • $?cd?~??
  • $?mkdir?test_project??
  • $?cd?test_project??
  • $?echo?"testing?">test.txt??
  • $?git?init?//初始化本地版本??
  • $?git?remote?add?origin?git@10.0.2.8:test_project.git //加到遠程版本庫中??
  • $?git?add?.??
  • $?git?commit?-a?-m?"哈哈哈,測試一下"???
  • $?git?push?origin?master??
  • 也可以把上面的兩步合成一步

    $ git push git@xxx:project1.git master

    說明:如果在執行 git push origin master 的時候,提示以下錯誤: error: src refspec master does not match any. error: failed to push some refs to 'git@192.168.0.77:pro2.git' 這是由于項目為空的原因,我們在項目目錄里新創建一個文件。經過->add -> commit -> push 就可以解決了

    $ touch a.txt $ git add a.txt $ git commit -a -m 'add a.txt' $ git push


    換個目錄看能否clone回來

    [plain] view plaincopy
  • $?cd?/tmp??
  • $?git?clone?git@10.0.2.8:test_project.git?//此時應該不會提示輸入ssh密碼的??

  • error: cannot run ssh: No such file or directory - cygwin git

    ”錯誤,則表示本機沒有安裝ssh命令。安裝方法請參考:http://blog.haohtml.com/archives/13313 有時候我們要更換電腦來重新開發項目。這個時候,只需要將id_rsa私鑰放在home目錄里的.ssh目錄里就可以了。(有時候一個人開發多個項目,這時候可能會提示id_rsa文件已經存在。不太清楚這里如何解決???)

    ?

    常見問題

    首先確定 /home/git/repositories/gitosis-admin.git/hooks/post-update 為可執行即屬性為 0755

    1. git操作需要輸入密碼

    原因
    公密未找到
    解決
    上傳id_rsa.pub到keydir并改為'gitosis帳號.pub'形式,如miao.pub。擴展名.pub不可省略

    2. ERROR:gitosis.serve.main:Repository read access denied

    原因
    gitosis.conf中的members與keydir中的用戶名不一致,如gitosis中的members = foo@bar,但keydir中的公密名卻叫foo.pub
    解決
    使keydir的名稱與gitosis中members所指的名稱一致。 改為members = foo 或 公密名稱改為foo@bar.pub

    轉載于:https://www.cnblogs.com/breg/p/3675294.html

    總結

    以上是生活随笔為你收集整理的在centos 下安装配置基于gitosis 的git 服务的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。