当前位置:首页 > CN2资讯 > 正文内容

linux创建git的公钥账号 linux 搭建git服务器

3天前CN2资讯


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

系统环境

Vultr Ubuntu 16.04,全程root权限。

推荐你们使用Vultr:https://www.vultr.com,英文不好的可以参考Vultr购买图解步骤,最低月付2.5刀,月付方便,随时重置。

在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:///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\用户名.ssh\id_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 [email protected]: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那个仓库的权限就会像刚才在配置文件设置的那样。

总结

    你可能想看:

    扫描二维码推送至手机访问。

    版权声明:本文由皇冠云发布,如需转载请注明出处。

    本文链接:https://www.idchg.com/info/18914.html

    分享给朋友:

    “linux创建git的公钥账号 linux 搭建git服务器” 的相关文章

    DediPath:高性能云服务器解决方案及用户评价

    DediPath概述 DediPath成立于2017年,作为一家美国服务器提供商,它的出现标志着全球云服务市场的进一步细分和创新。这家公司专注于为用户提供广泛的服务器解决方案,特别是在满足高流量需求的场景下表现出色。回顾DediPath的发展历程,它从最初的市场探索到逐渐成为一个在行业内备受认可的品...

    DMIT VPS评测:高性能与稳定性的完美结合

    在了解DMIT VPS之前,我想先分享一下我对这家公司的最初印象。记得第一次听到DMIT时,它的名字总是在VPS领域中流传。人们提到它时,无一不带着敬仰,增加了我对它的好奇心。自从它在2017年成立以来,DMIT便以其优秀的服务和产品迅速吸引了不少用户。我也开始关注起它背后的故事。 DMIT的崛起显...

    BBR加速:优化网络传输速度和稳定性的全面指南

    BBR加速概述 在现代网络环境中,BBR(Bottleneck Bandwidth and Round-trip propagation time)加速技术逐渐成为网络优化的重要工具。它是由谷歌开发的一种拥塞控制算法,主要用于提高网络传输速度和稳定性。对于许多用户来说,理解BBR的基本概念和技术背景...

    亚马逊CDN CloudFront:提升网站安全性与加载速度的理想选择

    亚马逊CDN概述 亚马逊CloudFront是亚马逊云科技旗下的一项内容分发网络(CDN)服务,它通过全球范围内的多个数据中心高效分发内容。我对这项服务的了解使我意识到,CloudFront不仅仅是一个简单的资源分发工具,它的设计旨在确保内容的流畅、高效、安全传输,尤其在当今对速度与安全性高度重视的...

    PacificRack低价VPS服务评测与用户体验分析

    在云计算和虚拟主机服务日益普及的今天,PacificRack作为QuadraNET旗下的全资子品牌,逐渐在低价VPS市场中崭露头角。它的主要定位是为那些对性能要求不高,且对价格敏感的用户提供解决方案。PacificRack通过严格的资源管理,致力于为用户提供一种经济实惠的选择,适合希望以最低成本体验...

    提升国际数据传输质量的9929线路分析与应用

    谈到9929线路,首先让我给大家介绍一下AS9929线路的基本情况。这条线路是中国联通为了满足国际市场的需求而推出的一种IP传输服务专线。它的起点在香港,通过海底光缆将中国与亚太及北美地区紧密连接。同时,这条线路还在欧洲和非洲设立了多个重要的网络节点(POP点),这就为跨国数据传输提供了坚实的基础。...