热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

搭建团队git工作环境[完整流程记录]

服务器环境LinuxCentOS6.5(IP:192.168.1.101)客户机环境Mac(IP:192.168.1.100)本文使用管理员进行操作1.[服务器]安装git$sud
  • 服务器环境 Linux CentOS 6.5 (IP:192.168.1.101)

  • 客户机环境 Mac (IP:192.168.1.100)

  • 本文使用管理员进行操作

1. [服务器] 安装git

$ sudo yum install git

若sudo碰到如下报错(无错忽略这里):

sudo: /etc/sudoers is mode 0640, should be 0440

直接恢复 /etc/sudoers 权限为0440即可(需要管理员权限)。

$ chmod 440 /etc/sudoers

2. [服务器] 安装 openssh 服务器与客户端工具

$ sudo yum install openssh-server openssh-client

3. [服务器] 配置git用户

帐户创建后,默认家目录会在 /home/git(若设定为其它目录请修改路径)

$ sudo useradd -m git
$ sudo passwd git #密码你随意

4. [服务器] 创建git仓库目录

创建默认的仓库目录 repositories,此目录可以在后面 gitosis.conf 配置文件里进行修改

$ sudo mkdir /home/git/repositories

设置git仓库权限

$ sudo chown git:git /home/git/repositories
$ sudo chmod 755 /home/git/repositories

初始化git全局设置

$ git config --global user.name "myname"
$ git config --global user.email "myname@server"

5. [服务器] 安装 gitosis 管理工具

安装 python 的 setup tool

$ sudo yum install python-setuptools

安装 gitosis

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

6. [服务器] 创建用于管理git的公钥和私钥

默认情况下,公钥和私钥会保存在~/.ssh目录下

$ ssh-keygen -t rsa

公钥需要添加到 /home/git/.ssh/authorized_keys 这里git操作时才不用输入密码,不过请不手动添加进来,我们需要使用gitosis来管理客户机git权限

注意:以前手动加进去的公钥是不受gitosis权限管理的,需要管理就删除手动加入的,让gitosis自动加入

7. [服务器] 配置gitosis

使用上面生成的公匙导入到gitosis里,本机就有了git的管理权限

$ cp ~/.ssh/id_rsa.pub /tmp
$ sudo -H -u git gitosis-init $ sudo chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update

8. [服务器] 管理gitosis

在服务器直接取出进行配置(配置好后,你也可以授权给某客户机帐户进行管理)

$ cd ~
$ git clone git@192.168.1.101:gitosis-admin.git
$ cd gitosis-admin/
$ ls -al

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

$ more gitosis.conf

gitosis.conf 的内容

[gitosis]
## To override the default ~/repositories path
# repositories = repositories
[group gitosis-admin]
writable = gitosis-admin
members = root@localhost.localdomain

8. [服务器] 创建git项目

使用git用户创建测试项目(不要用root帐户创建,注意目录权限)

$ su - git
$ cd /home/git/repositories
$ mkdir test_project
$ cd test_project
$ git init --bare
$ logout

9. [客户机] 创建成员的公钥和私钥

创建本机公钥和私钥

$ ssh-keygen -t rsa -C "yeyingsenlin928@qq.com"

复制客户机的公钥到服务器上clone出的gitosis-admin/keydir目录中

$ scp ~/.ssh/id_rsa.pub root@192.168.1.101:~/gitosis-admin/keydir/yeyingsenlin.pub

10. [服务器] 在gitosis中给客户机授权

进入服务器上clone出的gitosis-admin目录中

$ cd ~/gitosis-admin
$ vi gitosis.conf

在 gitosis.conf 中添加授权配置

[gitosis]
## To override the default ~/repositories path
# repositories = repositories
[group gitosis-admin]
writable = gitosis-admin
#加入了客户机做为gitosis管理
members = root@localhost.localdomain yeyingsenlin
#添加一个组
[group myteam]
#项目仓库名
writable = test_project
#成员名称要写上面公匙文件名对应,多个成员可用空格隔开
members = yeyingsenlin

保存配置,将gitosis改动提交到库

$ git add .
$ git commit -a -m "Allow yeyingsenlin write access to test_project"
$ git push origin master

11. [客户机] 授权后可以使用git仓库了

直接操作不需要密码

$ cd ~
$ mkdir test_project
$ cd test_project
$ echo "testing" > test.txt
$ git init
$ git remote add origin git@192.168.1.101:test_project.git
$ git add .
$ git commit -a -m "ok"
$ git push origin master

换个目录看能否clone回来

$ cd /tmp
$ git clone git@192.168.1.101:test_project.git

12. [客户机] 可授权客户机管理gitosis

上面已经将yeyingsenlin客户公钥加入配置,直接clone仓库取出 gitosis-admin 即可,对keydir的公钥及gitosis.conf授权进行管理,与上面服务器方法相同

$ cd ~
$ git clone git@192.168.1.101:gitosis-admin.git

13. [服务器] 注意git用户权限

因为使用gitosis对git进行限制,要保证/etc/passwd里的git配置为

$ vi /etc/passwd

找到git (通常在最后面)

git:x:501:501::/home/git:/bin/bash

如果是 git-shell 会操作失败

完成!

参考:
Github的SSH KEY配置
在centos 下安装配置基于gitosis 的git 服务
服务器上的 Git – Gitosis
Git远程操作详解
git错误大汇总


推荐阅读
  • 本文详细介绍了在 CentOS 7 系统中配置 fstab 文件以实现开机自动挂载 NFS 共享目录的方法,并解决了常见的配置失败问题。 ... [详细]
  • 在 Ubuntu 中遇到 Samba 服务器故障时,尝试卸载并重新安装 Samba 发现配置文件未重新生成。本文介绍了解决该问题的方法。 ... [详细]
  • SecureCRT是一款功能强大的终端仿真软件,支持SSH1和SSH2协议,适用于在Windows环境下高效连接和管理Linux服务器。该工具不仅提供了稳定的连接性能,还具备丰富的配置选项,能够满足不同用户的需求。通过SecureCRT,用户可以轻松实现对远程Linux系统的安全访问和操作。 ... [详细]
  • 本文介绍了如何在GitHub上设置多个SSH Key,以解决原有Key失效的问题,并确保不同项目使用不同的私钥进行安全访问。 ... [详细]
  • 本文详细介绍了在 Ubuntu 系统上搭建 Hadoop 集群时遇到的 SSH 密钥认证问题及其解决方案。通过本文,读者可以了解如何在多台虚拟机之间实现无密码 SSH 登录,从而顺利启动 Hadoop 集群。 ... [详细]
  • Linux CentOS 7 安装PostgreSQL 9.5.17 (源码编译)
    近日需要将PostgreSQL数据库从Windows中迁移到Linux中,LinuxCentOS7安装PostgreSQL9.5.17安装过程特此记录。安装环境&#x ... [详细]
  • 本文介绍了如何使用Python的Paramiko库批量更新多台服务器的登录密码。通过示例代码展示了具体实现方法,确保了操作的高效性和安全性。Paramiko库提供了强大的SSH2协议支持,使得远程服务器管理变得更加便捷。此外,文章还详细说明了代码的各个部分,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 您的数据库配置是否安全?DBSAT工具助您一臂之力!
    本文探讨了Oracle提供的免费工具DBSAT,该工具能够有效协助用户检测和优化数据库配置的安全性。通过全面的分析和报告,DBSAT帮助用户识别潜在的安全漏洞,并提供针对性的改进建议,确保数据库系统的稳定性和安全性。 ... [详细]
  • 在Linux系统中避免安装MySQL的简易指南
    在Linux系统中避免安装MySQL的简易指南 ... [详细]
  • 优化后的标题:深入探讨网关安全:将微服务升级为OAuth2资源服务器的最佳实践
    本文深入探讨了如何将微服务升级为OAuth2资源服务器,以订单服务为例,详细介绍了在POM文件中添加 `spring-cloud-starter-oauth2` 依赖,并配置Spring Security以实现对微服务的保护。通过这一过程,不仅增强了系统的安全性,还提高了资源访问的可控性和灵活性。文章还讨论了最佳实践,包括如何配置OAuth2客户端和资源服务器,以及如何处理常见的安全问题和错误。 ... [详细]
  • Ansible:自动化运维工具详解
    Ansible 是一款新兴的自动化运维工具,基于 Python 开发,集成了多种运维工具(如 Puppet、CFEngine、Chef、Func 和 Fabric)的优点,实现了批量系统配置、程序部署和命令执行等功能。本文将详细介绍 Ansible 的架构、特性和优势。 ... [详细]
  • 如何在Linux服务器上配置MySQL和Tomcat的开机自动启动
    在Linux服务器上部署Web项目时,通常需要确保MySQL和Tomcat服务能够随系统启动而自动运行。本文将详细介绍如何在Linux环境中配置MySQL和Tomcat的开机自启动,以确保服务的稳定性和可靠性。通过合理的配置,可以有效避免因服务未启动而导致的项目故障。 ... [详细]
  • 【实例简介】本文详细介绍了如何在PHP中实现微信支付的退款功能,并提供了订单创建类的完整代码及调用示例。在配置过程中,需确保正确设置相关参数,特别是证书路径应根据项目实际情况进行调整。为了保证系统的安全性,存放证书的目录需要设置为可读权限。值得注意的是,普通支付操作无需证书,但在执行退款操作时必须提供证书。此外,本文还对常见的错误处理和调试技巧进行了说明,帮助开发者快速定位和解决问题。 ... [详细]
  • 为了确保iOS应用能够安全地访问网站数据,本文介绍了如何在Nginx服务器上轻松配置CertBot以实现SSL证书的自动化管理。通过这一过程,可以确保应用始终使用HTTPS协议,从而提升数据传输的安全性和可靠性。文章详细阐述了配置步骤和常见问题的解决方法,帮助读者快速上手并成功部署SSL证书。 ... [详细]
  • 在 CentOS 7 系统中安装 Scrapy 时遇到了一些挑战。尽管 Scrapy 在 Ubuntu 上安装简便,但在 CentOS 7 上需要额外的配置和步骤。本文总结了常见问题及其解决方案,帮助用户顺利安装并使用 Scrapy 进行网络爬虫开发。 ... [详细]
author-avatar
dsalkj08_789
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有