专栏首页极客慕白的成长之路搭建自己的Git服务器

搭建自己的Git服务器

搭建Git服务器   让我们先看下服务器端SSH访问的配置。在这个例子中,我们使用authorized_keys的方法认证用户。我们假设你的服务器是一个标准linux发行版,比如ubuntu。   首先,你需要创建一个git用户,并在用户目录下创建一个.ssh文件夹

接下来,你需要将开发者的SSH公钥添加到authorized_keys文件。我们这里假设你能获取到可信的公钥,并将它们保存到了临时文件中。公钥的内容应该大致像这个样子:

你需要将这个公钥放置在git用户.ssh文件夹中的authorized_keys文件的最后。

现在,你可以初始化一个空的仓库,运行 git init 命令,并附带--bare选项,这样就是单纯地初始化一个仓库,而不会变更当前目录。

然后,John、Josie或者Jessica就可以将项目的初版推送到这个仓库中了,步骤就是添加一个remote地址,并推送对应的分支。注意,如果你想增加一个项目,那么你就需要登陆到机器上来,再初始化一个新的仓库。我们将你使用到的服务器成为gitserver。如果你是公司内部使用,那么设置一个DNS,让域名gitserver指向这台机器。然后你就可以直接使用下列命令了。 (假设myproject是一个已经存在并且有些内容的文件夹)

这时,其他人就可以把这个仓库clone下来,做些修改再push回去了。

用上面的方法,你很快得到了一个可用的Git服务器,现在你可以跟很多人一起协作工作了。   注意,现在每个人都能够登陆到服务器上,并以git用户身份操作。如果你想限制这种可能,可以修改一下passwd文件。   你可以限制用户只能通过git-shell来进行操作。如果你这样设置git用户的登陆设置,那么git用户就无法登陆到机器上了。为了做到这种效果,使用git-shell替换bash和其他登陆shell。所以如果你的/etc/shells中没有git-shell,那么你需要先添加上去:

现在你可以为一个用户修改他的shell了

现在,git用户只能使用ssh推拉代码,而不能登陆到机器上了。 如果你尝试登陆,会得到这样的提示信息

现在git的网络命令还可以正常使用,但是登陆到远程服务器上已经不行了。就像输出中显示的,你也可以在git用户目录下创建一个文件夹来定制git-shell的一些行为。例如,你可以限制git服务器接受的命令范围,或者更改尝试登陆的错误提示。对于定制git-shell的行为,你可以通过命令git help shell 查看相关的帮助信息。  

除特别注明外,本站所有文章均为慕白博客原创,转载请注明出处来自https://geekmubai.com/programming/34.html

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 利用Atom-beautify来美化代码

    前面我们说到了强大的Atom编辑器,下面我来说说怎么使用强大的Atom-beautify来美化代码。

    慕白
  • Java常用工具之异常

    在程序开发中,异常指不期而至的各种状况。它是一个事件,当发生在 程序运行期间时,会干扰正常的指令流程。

    慕白
  • 包装类及常用方法简介

    java.lang 包中的 Integer 类、Long 类和 Short 类,分别将基本类型 int、 long 和 short 封装成一个类。由于这些类都是...

    慕白
  • Git常用操作

    比如 取回origin主机的next分支,与本地的master分支合并,需要写成下面这样

    剑行者
  • 一份简简单单的git命令手册(附带备忘清单)

    转载自:https://segmentfault.com/a/1190000022491558

    落落落洛克
  • git入门基础知识

    暂存区:英文叫 stage 或 index。一般存放在 .git 目录下的 index 文件(.git/index)中,所以我们把暂存区有时也叫作索引(inde...

    超级大帅比
  • git 现在本地创建仓库 再 推送到 远程 github 仓库中

    今天,需要再本地使用git管理代码,但是当代码创建好的时候,想发布到github上面的私有仓库中,但是没有提前创建远端仓库,所以需要把本地git仓库推送到远端另...

    xuyaowen
  • Git常用命令参考手册

    检出某次commit提交, 如果当前分支上的某次提交的修改正是当前需要的,那么可以使用此命令进行操作。

    Erwin
  • Git之版本控制

    PayneWu
  • Git分布式版本控制器

      我要出一篇 Git 总结!先讲一下大致步骤: 如果是第一次接触 git 请先克隆仓库: 1.在本地新建项目文件夹,例如在D盘根目录下D:\ md m...

    我不是费圆

扫码关注云+社区

领取腾讯云代金券