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

前言 这里我用的系统是centos 6.2,

在服务器上的准备工作(服务器IP为10.0.2.8 ):
1、安装 openssh服务器与客户端工具

[plain]  view plain copy
  1. $ sudo yum install openssh-server openssh-client  


2、创建个人公钥和私钥(用于后面的git服务的管理员管理)
在默认用户的主目录路径下,运行以下命令,按照提示创建公钥和私钥
[plain]  view plain copy
  1. $ ssh-keygen -t rsa  
默认生成2048位,如果需要提高安全级别,也可以通过下面的命令创建公钥和私钥

[html]  view plain copy
  1. ssh-keygen -t rsa -b 4096  
默认情况下,公钥和私钥会保存在~/.ssh目录下,如下所示:


3、安装 git服务器

[plain]  view plain copy
  1. $  sudo yum install git-core  

4、配置 git服务器
创建git服务器管理用户

[plain]  view plain copy
  1. $  sudo useradd -m git   
  2. $  sudo passwd git  
创建git仓库存储目录

[plain]  view plain copy
  1. $  sudo mkdir /home/git/repositories  
设置git仓库权限

[plain]  view plain copy
  1. $  sudo chown git:git /home/git/repositories   
  2. $  sudo chmod 755 /home/git/repositories  

初始化全局设置

[plain]  view plain copy
  1. $  git config --global user.name "myname"   
  2. $  git config --global user.email "myname@server"  


5、安装python的setup tool 

[plain]  view plain copy
  1. $  sudo yum install python-setuptools  

6、获取并安装gitosis

[plain]  view plain copy
  1. $  cd /tmp   
  2. $  git clone git://eagain.net/gitosis.git //测试时从这拿不到,可换成 git clone https://github.com/res0nat0r/gitosis.git    
  3. $  cd gitosis   
  4. $  sudo python setup.py install  


7、配置gitosis

[plain]  view plain copy
  1. $  cp ~/.ssh/id_rsa.pub /tmp //上面第2步生成的公匙  
  2. $  sudo -H -u git gitosis-init < /tmp/id_rsa.pub //将该公匙导入gitosis里,这时本机已经有了为git的管理权限了  
  3. $  sudo chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update  
为了git操作时不用输入密码,还要做以下配置

[plain]  view plain copy
  1. $  cat /tmp/id_dsa.pub >> /home/git/.ssh/authorized_keys //将root的公匙导入到git目录的 authorized_keys文件中  
  2. $  chmod 600 /home/git/.ssh/authorized_keys  
  3.    

8、管理gitosis配置

[plain]  view plain copy
  1. $ cd ~   
  2. $ git clone git@hostname:/gitosis-admin.git   
  3. $ cd gitosis-admin/  
  4. $ ls -al  
看到以下结果



gitosis.conf是git仓库与权限配文件,keydir目录是存放其它客户机的公匙目录。

[plain]  view plain copy
  1. $  more gitosis.conf  
gitosis.conf 对应的内容
[plain]  view plain copy
  1. [gitosis]  
  2.   
  3. [group gitosis-admin]  
  4. writable = gitosis-admin  
  5. members = root@localhost.localdomain  

来这里git的服务已基本配置完毕,但要团队开发中用起来还要进以下配置:

在成员机(ip=10.0.2.100)上操上面第1与第2步生成自已的公匙,

[html]  view plain copy
  1. $  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 plain copy
  1. $  cd ~  
  2. $  cd gitosis-admin  
  3. $  cat keydir/tester.pub >> /home/git/.ssh/authorized_keys //将tester的公匙导入到git目录的 authorized_keys文件中  
  4. $ vi gitosis.conf  

修改gitosis.conf

[plain]  view plain copy
  1. [gitosis]  
  2. [group gitosis-admin]  
  3. writable = gitosis-admin  
  4. members = root@localhost.localdomain  
  5. #加一个组myteam  
  6. [group myteam]  
  7. members = tester #这里的tester对上面公匙文件名  
  8. writable = test_project #项目仓库名  

提交到版本库

[plain]  view plain copy
  1. $ git add keydir/tester.pub  
  2. $ git commit -a -m "Allow tester write access to test_project"  
  3. $ git push origin master  

这时tester便有权限操作test_project仓库了,回到成员机(ip=10.0.2.100)上

[plain]  view plain copy
  1. $ cd ~  
  2. $ mkdir test_project  
  3. $ cd test_project  
  4. $ echo "testing ">test.txt  
  5. $ git init //初始化本地版本  
  6. $ git remote add origin git@10.0.2.8:test_project.git //加到远程版本库中  
  7. $ git add .  
  8. $ git commit -a -m "哈哈哈,测试一下"   
  9. $ git push origin master  


换个目录看能否clone回来
[plain]  view plain copy
  1. $ cd /tmp  
  2. $ git clone git@10.0.2.8:test_project.git //此时应该不会提示输入ssh密码的  


最后大功告成...
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!
提供的源码资源涵盖了python应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值