资讯专栏INFORMATION COLUMN

Linux Ubuntu搭建Git服务器

bingchen / 3037人阅读

摘要:今天就介绍一下如何用搭建服务器以及使用来管理用户以及用户权限。总结至此,你就完成了在上搭建服务器的全部任务,接下来就是根据常用命令进行协同开发即可原文链接搭建服务器

之前介绍过如何在Windows上搭建Git仓库服务器,不过服务器用的比较多的还是Linux,因为便宜(同一个VPS商一般来说Linux比Windows便宜),没有图形界面,低配置VPS的也可以跑动Linux,开源免费,我感觉比较灵活,下载源也方便,手机都可以ssh远程。今天就介绍一下如何用Linux搭建Git服务器以及使用Gitosis来管理用户以及用户权限。

系统环境

年付19.99美元的搬瓦工服务器,系统为kvm,这里参考搬瓦工优惠网买一个就行。

在Ubuntu上搭建Git服务器 安装Git服务器必备的软件

这里主要包括git核心软件、ssh协议软件和python的setuptools:

apt-get update && apt-get -y install git-core openssh-server openssh-client python-setuptools lrzsz
安装Gitosis管理用户与项目

Gitosis是一套用来管理authorized_keys文件和实现简单连接限制的脚本,对项目、用户以及项目的读写权限进行管理,安装命令如下:

git clone https://github.com/res0nat0r/gitosis.git && cd gitosis && python setup.py install

Gitosis默认使用的Git根目录是/home/git/repositories,其中git是即将新建的用户。如果你想把仓库放在别的地方,就用软连接将它与/home/git/repositories连接起来。

创建Git管理员账户

新建一个用户作为Git服务器的管理员:

useradd -m git
passwd git
用管理员公钥初始化Gitosis

这个管理员公钥的意思是你本机的公钥,是用来管理这个Gitosis的(默认会有gitosis-admin的读写权限),你可以将你本机(常用机器)的ssh key拷贝到服务器上来,从而实现管理的目的。

1.在本机生成公钥

ssh-keygen -t rsa

生成好后,Windows默认的存放路径在C:Users用户名.sshid_rsa.pub。

2.上传公钥至服务器并激活Gitosis
将公钥拷贝到git用户下,因此先切换至git用户:

su git

之后用rz命令直接拷贝值服务即可。(Windows利用lrzsz拷贝文件至Linux)

3.初始化Gitosis
依然在git用户下,利用刚才上传的公钥初始化Gitosis:

gitosis-init < /home/git/id_rsa.pub
在Git服务器新建一个项目

完成上一步之后,你Git服务器已经装好了。相关信息总结如下:

默认的仓库地址是在/home/git/repositories

Git管理用户是刚才创建的git

Gitosis管理用户权限是通过一个git项目实现的,那个项目地址在/home/git/repositories/gitosis-admin.git,默认是你刚才上传公钥的电脑可以clone此仓库

新建一个项目就是在默认的仓库地址下面新建一个空的git项目:

cd /home/git/repositories
mkdir test.git
cd test.git
git init --bare

如此,便新建了一个test的项目。

在本机clone项目

首先,需要用上传公钥的电脑克隆Gitosis用来管理用户权限的项目:

git clone git@206.189.160.168:gitosis-admin.git

其中,git是你刚才新建的Git管理员,后面跟着的是你的ip(如果你想用你的域名代替,Namesilo域名购买与优惠码,买完域名后,直接添加一个DNS解析到这个IP即可)。

gitosis-admin的中包括一个keydir文件夹和一个gitosis.conf文件,前者是用来存放用户的ssh key的,后者是用来管理用户权限的,举个例子,我现在要给张三和李四的电脑读写test的权限:

1.将张三电脑和李四电脑的ssh key拷贝至keydir文件夹下

例如将张三的公钥文件保存为zhangsan.pub放在keydir下(这个文件名字与下面配置文件要一致)、李四的公钥文件保存为lisi.pub放在keydir下。

2.在gitosis.conf中添加相关配置

[group test]
members = zhangsan lisi
writable = test

如此,我便新建了一个test的group,其中用户有zhangsan和lisi,他们拥有读写权限。

此时,如果你想让王五只有读的权限,那么就将配置文件改成:

[group test]
members = zhangsan lisi
writable = test
[group test_read]
members = wangwu
readonly = test

如此,wangwu只能clone或者pull,却不能push。

3.将修改推送至服务器

此时只是完成了本地的修改,要将修改推送到服务器才能生效(add、commit、push),之后test那个仓库的权限就会像刚才在配置文件设置的那样。

总结

至此,你就完成了在Ubuntu上搭建Git服务器的全部任务,接下来就是根据Git常用命令进行协同开发即可~

原文链接:Linux Ubuntu搭建Git服务器

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/23766.html

相关文章

  • 深入体验bash on windows,在windows上搭建原生的linux开发环境,酷!

    摘要:使用安装具体命令输入,很好掌握。安装和安装的时候一样,这里通过添加的第三方,实现方式安装最新版本,比源码编译安装方式在管理上还是要方便一点。 今年微软Build 2016大会最让开发人员兴奋的消息之一,就是在Windows上可以原生运行Linux bash,对开发人员来说,这是一个喜闻乐见的消息。 1 安装 你必须安装开发者预览版本,才能使用windows的linux subsyste...

    EsgynChina 评论0 收藏0
  • VPS搭建个人Hexo博客

    摘要:原文地址作为一个天天造的人,必然要经常访问谷歌等网站,所以前些日子买了自己搭了梯子。今天就跟大家分享一下,如何使用搭建个人博客。创建用户,建立裸库,配置。 原文地址:https://www.xksblog.top/use-V... 作为一个天天造BUG的人,必然要经常访问谷歌等网站,所以前些日子买了VPS自己搭了梯子。但如果只是用VPS来搭梯子那就太浪费了,所以又折腾了一天,把自己之...

    warmcheng 评论0 收藏0
  • ESP32-S3 搭建 micropython 开发环境,固件编译,烧录

    摘要:环境搭建环境搭建系列芯片的开发绝大部分都是经由乐鑫科技提供的软件开发工具包来进行的,也需要应用此。如果是使用乐鑫科技官方的下载工具在平台则可以直接通过芯片接口将固件烧录进。简述上手了一块乐鑫科技官方推出的ESP32-S3-DevKitC-1开发板,发现 ESP32-S3 的综合性能较比前两代有着非常明显的提升,wifi与蓝牙功能,更充足的外设扩展能力,可以看出其在未来物联网开发应用中将占有更...

    番茄西红柿 评论0 收藏2637
  • docker 应用系列(一)--- 一步步搭建虚拟机 docker 环境 附有 vue-cli +

    摘要:为确保系统里面没有自带的软件的残留,我们要清除一下旧版本的,虽然新系统一般都不会有就是了。更新软件包缓存。 showImg(https://segmentfault.com/img/remote/1460000015914895?w=1240&h=819); 小剧场 测试:裤裆你这页面刷新就白屏啊,怎么了啊,而且你看这 network,怎么这些 js 这么大啊,很耗流量而且加载速度还很...

    hatlonely 评论0 收藏0
  • 搭建远程git仓库

    摘要:语法其中各为一个数字,分别表示,及的权限。很简单,初学者,刚搭建服务器,啥都想试试,顺便熟练下操作,以及做个笔记。这个是搭建后写的,或许会有些,但大致流程是这样,问题不大。参考用户配置部分仓库权限部分参考定义参考文章 客户端配置 安装 git bash 网上搜 git 安装包然后下载安装即可 设置个人信息 git config --global user.name your name ...

    vpants 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<