CentOS7 安装git和gitosis
来源:互联网 发布:微信怎么没有网络 编辑:程序博客网 时间:2024/06/03 17:22
- 链接
- 环境说明
- 安装git
- 新建用户git
- 安装gitosis
- 配置gitosis
- 使用
1 链接
个人博客: alex-my.xyz
CSDN: blog.csdn.net/alex_my
2 环境说明
- 服务器使用的阿里云, CentOS7.4
- 本机使用的Mac
服务器的ssh端口不是默认的22,而是8998(实际不是,不想告诉你),安全为主
- 打开
/etc/ssh/sshd_config
- 找到 Port 22
- 将22修改为8998
- 重启ssh服务:
systemctl restart sshd.service
- 在阿里云后台安全组添加8998
在firewalld添加端口8998
-- 添加firewall-cmd --zone=public --add-port=8998/tcp --permanent-- 重载firewall-cmd --reload-- 查看firewall-cmd --zone=public --list-ports
- 打开
多提一句,虽然我们修改了ssh端口,但还是可以用类似
namp
工具扫描出来,所以我把ICMP
也屏蔽了echo 1 >/proc/sys/net/ipv4/icmp_echo_ignore_all
- 如果要恢复,把数字修改为0就好
- 重启就失效了,所以需要添加到开机启动中(rc.local或者systemd)
- 试一试,还能
ping
的通服务器吗?
- 我的机子实际IP地址也不是
124.123.122.121
, 随意填的
3 安装git
卸载旧的git
yum remove git
安装依赖包
yum install autoconf curl-devel expat-devel openssl-devel zlib-devel perl-devel
下载源码包
- 去官网 git-scm 拷贝链接
- 我所使用的链接: https://www.kernel.org/pub/software/scm/git/git-2.9.5.tar.gz
下载到任意位置(装完就删)
wget https://www.kernel.org/pub/software/scm/git/git-2.9.5.tar.gz
编译安装
tar -zxvf git-2.9.5.tar.gzcd git-2.9.5./configuremakemake install # 需要root权限
制作软链接到
/usr/bin
ln -s /usr/local/bin/git /usr/bin/git
查看版本号
git --version
- 输出:
git version 2.9.5
- 输出:
删除安装包
rm -rf git-2.9.5 git-2.9.5.tar.gz
4 新建用户git
- 我们希望有专门的用户来管理git服务,而不是使用拥有最高权限的root用户
新建用户git,用于运行服务(root用户执行)
useradd git
为新用户创建密钥等信息(git用户执行)
su git # 从root用户转为gitcd ~ # 实际上为 /home/gitmkdir .sshchmod 700 .sshcd .sshssh-keygen -t rsa
- 会在
/home/git/.ssh
生成两个文件id_rsa
,id_rsa.pub
- 会在
5 安装gitosis
- 这是一款非常好用的权限管理工具,具体说明自行搜索
安装python以及python工具,一般默认自带2.7.5,可以照样再执行一遍
yum install python python-setuptools
下载安装gitosis
git clone git://github.com/res0nat0r/gitosis.gitcd gitosispython setup.py install
- 最后输出
Finished processing dependencies for gitosis==0.2
表示成功
- 最后输出
6 配置gitosis
初始化gitosis
gitosis-init < /home/git/.ssh/id_rsa.pubrm -rf /home/git/.ssh/id_rsa.pub # 安全起见,就删了吧chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update
- 由于仓库默认就是
/home/git/repositories
,但是常常这个地方硬盘较小,因此我希望能指定到较大空间的硬盘去 没有找到如何在
gitosis-init
的时候指定路径的方法,这边就采取妥协的方式: 使用软链接(root用户执行)exit # 退出git用户,返回到之前的root用户mv /home/git/repositories /data/git # 移动到/data目录下并重命名为gitln -s /data/git /home/git/repositorieschown git:git /data/gitchown git:git /home/git/repositories
先把权限管理工程克隆下来(管理员/运维人员以后可以克隆到自己的电脑上,我这里直接放在了git用户这里)(git用户执行)
su gitcd ~git clone ssh://git@124.123.122.121:8998/gitosis-admin.git git-manage
- 如果ssh端口是默认的22,可以使用
git clone git@124.123.122.121:gitosis-admin.git git-manage
- 如果ssh端口是默认的22,可以使用
- 在git-manage目录中有两个文件
- gitosis.conf: 配置权限
- keydir: 存放用户公钥
将自己的密钥文件上传到
keydir
目录中,并命名,比如我自己电脑上的公钥命名为alex.pub
# linux,mac等用scp命令,服务器ssh端口为8998scp -P 8998 id_rsa.pub root@124.123.122.121:/data
- 登录服务器将
id_rsa.pub
移动到/home/git/git-manage/keydir
中,并命名为alex.pub
- 登录服务器将
配置
gitosis.conf
文件(git用户执行)[gitosis][group gitosis-admin]members = git@keylalawritable = gitosis-admin[group dev]members = alexwritable = js.keylala
- 以上代码中,我们可以看见,只有
git@keylala
用户能够操作gitosis-admin
项目,运维可以把自己的名称也加到这里 - members指的是用户名称,这个用户名称必须与公钥文件的名称相同
- members可以配置多个用户,用空格隔开就行
- writable用于指定可以写的工程,比如后面我们会创建一个
js.keylala.git
工程 - 以上的意思是,拥有
alex.pub
这个公钥对应私钥的用户可以操作js.keylala.git
工程 - 至于
group dev
什么的都是自己命名的,请随意
- 以上代码中,我们可以看见,只有
按照以上改完之后,要记得,
git-manage
是导出的项目工程,我们要用命令推送回仓库中去(git用户执行)cd /home/git/git-managegit add .git commit -m "add new group"git push origin master
- 新增文件时用
git add .
- 如果只是修改,可以不用
git add .
,而是用git commit -am "change"
一次性搞定
- 新增文件时用
7 使用
创建项目(git用户执行)
su gitcd /data/gitgit init --bare js.keylala.git
- 这个时候会有一个
js.keylala.git
文件夹生成
- 这个时候会有一个
在自己的电脑上访问
git clone ssh://git@124.123.122.121:8998/js.keylala.git
- 这样就下载到自己的机子上了
如果服务器用的是默认的22端口,用以下命令
git clone git@124.123.122.121:js.keylala.git
在自己的电脑上修改并提交
cd js.keylalatouch readme.mdgit add .git commit -m "add new file"git push origin master
- 提交之后,可以在另一个地方再克隆出来看看,是不是有
readme.md
这个文件了
阅读全文
0 0
- CentOS7 安装git和gitosis
- 服务器端git的安装和gitosis安装
- inux下Git和gitosis的安装与配置
- Git服务器Gitosis安装设置
- Git服务器Gitosis安装设置
- Git服务器Gitosis安装设置
- Git + gitosis + repo安装配置
- Git服务器Gitosis安装设置
- Git服务器Gitosis安装设置
- Git服务器Gitosis安装设置
- Git服务器Gitosis安装设置
- Git服务器Gitosis安装设置
- Git服务器Gitosis安装设置
- Git服务器Gitosis安装设置
- Git服务器Gitosis安装设置
- Git服务器Gitosis安装设置
- Git服务器Gitosis安装设置
- Git 服务器 Gitosis 的安装
- Reversing Linked List
- appium在android7.0真机上测试程序时报错command failed shell “ps ‘uiautomator’”的解决方式
- C++运算符重载
- NS2:架构(节点、链路、代理、应用层)
- RegExp
- CentOS7 安装git和gitosis
- 手动将本地jar添加到Maven仓库
- ie6下几种bug的解决方式
- python re模块的用法以及正则表达式
- IntelliJ IDEA 开发Spring-Boot之Hello World
- vue小笔记 解决build 相对路径报错问题和静态图片路径报错的问题
- 文章标题
- 求n^n第一位数 数学
- 代码整洁之道