仓库Git环境搭建(2)---搭建CS架构的服务器

cs服务器  时间:2021-01-30  阅读:()

北大青鸟中关村

Git环境搭建(2)---搭建C/S架构的服务器

Git支持本地local、 ssh、 git和http s这四种协议进行传输本部分将基于ssh协议搭建(此协议不利于开源适合公司团队使用)。本文操作大部分在Ubuntu服务器端完成。

1、我们在服务器端新增加一个用户本文为gitadmin用于管理git仓库

Ubuntu下启动终端键入命令

$sudouseradd-mgitadmin --首次执行sudo命令需要按提示输入管理员密码

$sudopasswdgitadmin --设置用户gitadmin密码

将gitadmin设置为管理员用户方法很多这里用通过修改sudoers文件实现

$sudo vim/etc/sudoers

接下来进到vim编辑器键入i进入插入模式找到下面这行并添加gitadmin

#User privi legespecificationrootALL=(ALL:ALL) ALLgitadmin ALL=(ALL:ALL) ALL

键盘esc退出插入模式输入冒号 光标出现在底端输入wq回车退出。

$ sugitadmin --输入刚刚设置的密码切换到gitadmin用户

北大青鸟中关村

2、安装配置ssh服务

$sudo apt-get instal l openssh-server openssh-cl ient

按提示输入管理员密码 同意[Y],安装完毕。 OpenSSH为自由软件是ssh的开源实现。

$sudo vim/etc/ssh/sshd_config

找到下面几行去掉前面"#"注释并设置

StrictModes no--在用户名和其公钥文件名不匹配时将通过验证RSAAuthentication yes --使用纯的RSA认证

PubkeyAuthentication yes -- 允 许 Publ ic KeyAuthorizedKeysFi le %h/.ssh/authorized_keys

上面这个配置是设定免密码登陆的账号公钥存储路径ps  如果是小团队 把每个人的公钥收集起来放到/home/git/.ssh/authorized_keys文件里问题不大如果团队较大或是有权限要求这种方式就很不灵活了这时可以用Gitosis来管理公钥我将在后文介绍。

接着重启ssh服务

$sudo service ssh restart 或是 $sudo/etc/init.d/ssh restartssh服务器到这里安装配置完毕。

出于安全考虑可以在本教程配置完毕后设置gitadmin用户不允许登录shel l 可通过用vim打开编辑/etc/passwd文件并找到下面的一行(自行创建的用户名) gitadmin:x:1001:1001:,,, :/home/gitadmin:/bin/bash

北大青鸟中关村

改为gitadmin:x:1001:1001:,,, :/home/gitadmin:/usr/bin/git-shel l

这样 gitadmin用户可以正常通过ssh使用git但无法登录shel l 因为我们为gitadmin用户指定的git-shel l每次一登录就自动退出

3、安装配置git服务器

$sudo apt-get instal lgitgit-core --安装git服务器

$sudomkdir/home/gitadmin/repositories --创建git仓库存储目录$sudochowngitadmin:gitadmin/home/gitadmin/repositories --设定所有者

$sudochmod 755/home/gitadmin/repositories --设置仓库访问权限接下来初始化全局设置

$gitconfig--global user.name“gitadmin”

$gitconfig--global user.emai l “gitadmin@server”

@后的server为本机I P可用ifconfig查看

4、基本的git服务器without gitosis

这里是git本地服务器最基本的实现不使用下文讲解的gitosis进行管理适合人数较少并且没有权限管理要求的小团队。

PC客户端

首先安装git客户端参见后文方法

配置无密码登陆需拷贝pc端公钥至/home/git/.ssh/authorized_keys在git.bash下

$ ssh-keygen -t rsa --生成本机密钥 公钥默认在

北大青鸟中关村

~/.ssh/id_rsa.pub

$ ssh-copy-id gitadmin@host --上传公钥远程主机host为服务器IP

若不用以上命令用下面这条命令则清楚地解释了公钥的保存过程$ sshgitadmin@host 'mkdir -p .ssh&&cat >> .ssh/authorized_keys' <~/.ssh/id_rsa.pub

Ubuntu服务器端

你可以在服务器端自行创建仓库先选定一个目录作为Git仓库假定是/srv/sample.git在/srv目录下输入命令

$sudogitinit--baresample.git

$sudochown-R gitadmin:gitadminsample.git--把owner改为gitadmin这样Git就会创建一个裸仓库裸仓库没有工作区 因为服务器上的Git仓库纯粹是为了共享所以不让用户直接登录到服务器上去改工作区并且服务器上的Git仓库通常都以.git结尾。

至此最基本的git本地服务器已经搭建完毕可以通过git clone命令克隆远程仓库在各自电脑上运行了。

5、安装配置gitosis

简单地说Gitosis就是一套用来管理authorized_keys文件和实现简单连接限制的脚本。有趣的是用来添加用户和设定权限的并非通过网页程序而只是管理一个特殊的Git仓库。你只需要在这个特殊仓库内做好相应的设定然后推送到服务器上 Gitosis就会随之改变运行策略。

北大青鸟中关村

创建管理员公钥和私钥

在默认用户的主目录路径下运行以下命令按照提示创建可直接回车略过 $ss h-keygen-t rsa

默认生成2048位如果需要提高安全级别也可以通过下面的命令$ssh-keygen-trsa-b 4096

公钥和私钥默认会保存在~/.ssh目录下如下所示id_rsaid_rsa_pub(公钥) known_hosts

安装gitosis

安装python的setup tool

$sudo apt-get instal l python-setuptools

获取并安装gitosis

$cd/tmp--切换到缓存目录下载安装包在关机时会被系统自动清理$git clone https://github.com/tv42/gitosis.git--下载安装包

$cdgitosis

$sudo python setup.py instal l --到此gitosis安装完成

配置gitosisgitosis会默认将git仓库放在gitadmin主目录下并自动管理authorized_keys文件

$cp~/.ssh/id_rsa.pub/tmp--拷贝出管理员公钥

向gitosis添加公钥并初始化

$sudo-H-u gitadmingitosis-init</tmp/id_rsa.pub

Initial ized empty Git repository in

北大青鸟中关村

/home/gitadmin/repositories/gitosis-admin.git/

Reinitial ized existing Git repository in/home/gitadmin/repositories/gitosis-admin.git/

这样该公钥的拥有者gitadmin就能修改用于配置Gitosis的那个特殊Git仓库了。接下来需要手工对该仓库中的post-update脚本加上可执行权限

$ sudochmod 755/home/gitadmin/repositories/gitosis-admin.git/hooks/post-update到此为止git服务器端的搭建结束管理员为gitadmin。

6、仓库管理员信息

现在在终端下进到用户主目录克隆Gitosis的控制仓库

$gitclonegitadmin@server:gitosis-admin.git

当前目录下将得到一个名为gitosis-admin的工作目录主要由两部分组成

$cdgitosis-admin

$find.

./gitosis.conf

./keyd ir

./keydir/gitadmin.pubgitosis.conf文件是用来设置用户、仓库和权限的控制文件。 keydir 目录则是保存所有具有访问权限用户公钥的地方每人一个。在keydir里的文件名如我gitadmin.pub应该跟你的不一样 Gitosis会自动

北大青鸟中关村

从使用gitosis-init脚本导入的公钥尾部描述中获取该名字。用编辑器gitosis.conf文件的内容只包含与刚刚克隆的gitosis-admin相关的信息

$catgitosis.conf

[gitosis]

[groupgitosis-admin]members=gitadminwritable=gitosis-admin

它显示用户gitadmin是唯一能管理gitosis-admin项目的人。

速云:广州移动/深圳移动/广东联通/香港HKT等VDS,9折优惠,最低月付9元;深圳独立服务器1050元/首月起

速云怎么样?速云,国人商家,提供广州移动、深圳移动、广州茂名联通、香港hkt等VDS和独立服务器。现在暑期限时特惠,力度大。广州移动/深圳移动/广东联通/香港HKT等9折优惠,最低月付9元;暑期特惠,带宽、流量翻倍,深港mplc免费试用!点击进入:速云官方网站地址速云优惠码:全场9折优惠码:summer速云优惠活动:活动期间,所有地区所有配置可享受9折优惠,深圳/广州地区流量计费VDS可选择流量翻...

美国云服务器 1核 1G 100M 10G防御 39元/月 物语云计算

物语云计算(MonogatariCloud)是一家成立于2016年的老牌国人商家,主营国内游戏高防独服业务,拥有多家机房资源,产品质量过硬,颇有一定口碑。本次带来的是美国圣何塞 Equinix 机房的高性能I9-10980XE大带宽VPS,去程CN2GIA回程AS9929,美国原生IP,支持解锁奈飞等应用,支持免费安装Windows系统。值得注意的是,物语云采用的虚拟化技术为Hyper-V,资源全...

atcloud:480G超高防御VPS低至$4/月,美国/新加坡等6机房,512m内存/1核/500g硬盘/不限流量

atcloud主要提供常规cloud(VPS)和storage(大硬盘存储)系列VPS,其数据中心分布在美国(俄勒冈、弗吉尼亚)、加拿大、英国、法国、德国、新加坡,所有VPS默认提供480Gbps的超高DDoS防御+不限流量,杜绝DDoS攻击骚扰,比较适合海外建站等相关业务。ATCLOUD.NET是一家成立于2020年的海外主机商,主要提供KVM架构的VPS产品、LXC容器化产品、权威DNS智能解...

cs服务器为你推荐
手机内存卡数据恢复手机内存卡丢失数据如何恢复?天气预报哪个好用哪个最准确最准天气预报软件排行是怎样的?手机浏览器哪个好手机浏览器哪个好用核芯显卡与独立显卡哪个好独立显卡和核心显卡哪个好网络机顶盒哪个好什么牌子的网络机顶盒最好qq空间登录登陆进入QQ空间进去了叫登陆登陆了又叫登陆空间登录器用什么登录器可以登录QQ(除了QQ登录器)qq空间登录不了为什么我的QQ空间登陆不上?东莞电信宽带套餐广东东莞电信宽带资费是怎么样的?dns服务器有什么用DNS服务器有什么做用
动态域名 网站域名备案 lunarpages 秒解服务器 外国空间 火车票抢票攻略 阿里云代金券 tk域名 免费ddos防火墙 免费网络电视 申请空间 网通服务器ip 100x100头像 qingyun 腾讯云分析 softbank邮箱 200g硬盘 北京双线 流量计费 免费申请网站 更多