热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

Linux架设使用SSH共享存取的GitServer

Git架设使用HTTP就是走Webserver的权限,走SSH就是各个帐号的权限.(Git的object目录里面会有权限问题)若多人共用的话,要走SSH有下述几种方法:建立新帐号(git),由git帐号来统一管理(commitpush)等使用gitosis来管理(gitosis可以

Git 架设使用 HTTP 就是走 Web server 的权限, 走 SSH 就是各个帐号的权限. (Git 的 object 目录里面会有权限问题)

若多人共用的话, 要走 SSH 有下述几种方法:

  1. 建立新帐号(git), 由 git 帐号来统一管理(commit / push) 等
  2. 使用 gitosis 来管理(gitosis 可以设定到 "谁" 可以存取此专案).
  3. 使用 gitolite 来管理(gitolite 可以设定 "谁" 可以存取此专案, 而且, 可以设定只能存取哪个 branch 等路径)

在此篇是?裼 建立一个 git 帐号来统一管理的方法.

相关资料准备

  • 系统: Debian / Ubuntu Linux
  • Server: example.com
  • Project name: project_name
  • Git Repository: /var/cache/git

系统套件安装

  • apt-get install git-core

    产生 SSH 公钥

    1. ssh-keygen -t rsa # 产生 id_rsa, id_rsa.pub
    2. mv id_rsa ~/.ssh/ # 将 id_rsa 放在 ~/.ssh/ 内.
    3. scp id_rsa.pub example.com:/tmp/id_rsa_user1.pub # 将 id_rsa.pub 丢到 Server 上, 大家的 public key 都需要传到 Server 上.

    Git Server 设定

    1. ssh example.com
    2. adduser git --disabled-password # 建立一个 git 帐号, 所有动作都由 git 来执行, 可避免权限问题
    3. su - git # 切换成 git 权限
    4. cd; mkdir .ssh
    5. 将大家的 public key 加入 (可以远端透过 git 登入的问题, 会于后续设定解决)
    6. cat /tmp/id_rsa_user1.pub >> ~/.ssh/authorized_keys
    7. cat /tmp/id_rsa_user2.pub >> ~/.ssh/authorized_keys
    8. ?: commit / push 还是会保留原始 commit 人得名字, 不会是 git

    建立 Git Repository

    1. ssh example.com
    2. su - git
    3. mkdir -p /var/cache/git/project_name.git
    4. cd /var/cache/git/project_name.git
    5. git init --bare --shared

    新增资料到 Git Repository

    于自己的电脑, 下述两种作法皆可:

    1. git clone git@example.com:/var/cache/git/project_name.git
    2. cd project_name
    3. vim test.txt
    4. git add .
    5. git commit -m 'add test.txt'
    6. git push origin master

    1. mkdir project_name
    2. cd project_name
    3. git init
    4. git add .
    5. git commit -m 'initial commit'
    6. git remote add origin git@example.com:/var/cache/git/project_name.git
    7. git push origin master

    避免 Git 帐号登入 (安全问题)

    • vim /etc/passwd # 修改 /bin/sh => /usr/bin/git-shell, git-shell 只能做 git 操作, 无法 Login.

      git:x:1000:1000::/home/git:/bin/sh

      改成

      git:x:1000:1000::/home/git:/usr/bin/git-shell

      即可.

    常用指令笔记

    • Clone: git clone git@example.com:/var/cache/git/project_name.git
    • Commit & Push: git push
    • 第一次 Commit / Push 的指令: git push origin master

    推荐阅读
    • Centos7.6安装Gitlab教程及注意事项
      本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
    • imx6ull开发板驱动MT7601U无线网卡的方法和步骤详解
      本文详细介绍了在imx6ull开发板上驱动MT7601U无线网卡的方法和步骤。首先介绍了开发环境和硬件平台,然后说明了MT7601U驱动已经集成在linux内核的linux-4.x.x/drivers/net/wireless/mediatek/mt7601u文件中。接着介绍了移植mt7601u驱动的过程,包括编译内核和配置设备驱动。最后,列举了关键词和相关信息供读者参考。 ... [详细]
    • Linux神奇漏洞:长按回车键70秒 即可轻松拿到Root权限
      一般来说获取系统root权限是很困难的,尤其是加密系统中,但西班牙安全研究员hectormarco、ismaelripoll发现,linux系统下只需按住回车键70秒钟,就能轻 ... [详细]
    • python3.7 安装pip3_python3的pip3安装
      ---恢复内容开始---pip3的安装需要对应一整套python的编译工具库,所以安装好的pip3是这个样子:inearAi:~$pip3-Vpi ... [详细]
    • 系统安装Debian系统的安装方式和Ubuntu系统的安装方式几乎是一样的,毕竟Ubuntu系统是基于Debian的,就如同CentOS基于Redhat ... [详细]
    • 如何监控 Linux 服务器状态?,分享
      Linux服务器我们天天打交道,特别是Linux工程师更是如此。为了保证服务器的安全与性能,我们经常需要监控服务器的一些状态,以保证工作能顺利开展。本文介绍的几个命令,不仅仅适用于 ... [详细]
    • 主流操作系统简介
      主流操作系统简介子墨居士操作系统理论定义为管理计算机硬件资源,控制其他程序运行并为用户提供交互操作界面的系统软件的集合。操作系统是计算机系统的关键组成部分࿰ ... [详细]
    • 你知道GPL吗?GPL 没落了吗?
      不久之前我看到了RedMonk的StephenOGrady发了一个关于开源协议的有趣的推特,那个推特里面有这张图。RedmonkBlackDuckLicensing ... [详细]
    • SpringBoot整合SpringSecurity+JWT实现单点登录
      SpringBoot整合SpringSecurity+JWT实现单点登录,Go语言社区,Golang程序员人脉社 ... [详细]
    • 本文介绍了在RHEL 7中的系统日志管理和网络管理。系统日志管理包括rsyslog和systemd-journal两种日志服务,分别介绍了它们的特点、配置文件和日志查询方式。网络管理主要介绍了使用nmcli命令查看和配置网络接口的方法,包括查看网卡信息、添加、修改和删除配置文件等操作。 ... [详细]
    • 现在比较流行使用静态网站生成器来搭建网站,博客产品着陆页微信转发页面等。但每次都需要对服务器进行配置,也是一个重复但繁琐的工作。使用DockerWeb,只需5分钟就能搭建一个基于D ... [详细]
    • DockerDataCenter系列(四)-离线安装UCP和DTR,Go语言社区,Golang程序员人脉社 ... [详细]
    • Linux一键安装web环境全攻略
      摘自阿里云服务器官网,此处一键安装包下载:点此下载安装须知1、此安装包可在阿里云所有Linux系统上部署安装,此安装包包含的软件及版本为& ... [详细]
    • 基于SSL的mysql服务器的主从架构实现说明:本文选用172.16.22.1作为主服务器,172.16.22.3作为从服务器从服务器的mysql软件版 ... [详细]
    • 如何查看电脑系统版本_腾讯云服务器系统版本怎么看?Windows和Centos版本怎么选?...
      腾讯云服务器系统版本怎么看?想要知道自己的腾讯云服务器系统版本是哪个,可以登录云服务器后台管理系统查看,或者使用命令行查询,如果不会操作& ... [详细]
    author-avatar
    儿双全id
    这个家伙很懒,什么也没留下!
    PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
    Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有