linux下搭建自己的git服务器

安装git:

  yum install git

创建git仓库

git init --bare /usr/test.git   此处在/usr路径下创建了一个test.git 的仓库

创建用户组

因为需要多人协作,所以可以直接创建用户组,统一管理。

groupadd gitgroup  这里创建了一个名为gitgroup的用户组

创建2个用户并且设置密码,添加到组里:

adduser username1  passwd 123

adduser username2  passwd 123

usermod -G gitgroup username1

usermod -G gitgroup username2

给组赋予权限

chgrp -R gitgroup /usr/  

chmod -R 777 /usr/  这里是给这个文件路径下的文件写权限,不然只能pull代码 不能push

禁止linux使用git的ssh登录

这里禁止的意义是为了服务器的安全性,避免从git的ssh可以直接登录服务器

编辑/etc/passwd文件
找到 : git:x:1001:1001:,,,:/home/git:/bin/bash

改为 : git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell

*可能用到的命令:修改ssh后,有可能需要重启ssh才能生效
SSH重启: service sshd restart
SSH启动: service sshd start

实例:

clone 项目

git@ip地址:/仓库路径

实例:git clone git@111.111.11.11:/usr/test.git  

注意:出现warning: You appear to have cloned an empty repository. 只是因为是个空项目,没有关系

以上并没有配置公钥私钥,因此每次更新都需输入密码,我们可以通过以下配置进行密钥登陆,无需重复输入密码。

1.创建ssh证书

*这里创建ssh证书,是在本地创建,而不是在服务器端创建的。这个需要注意。以win为例,打开git命令面板,

1.  先配置用户名和邮箱:(如果已经配置了则跳过)

             git config --global user.name '你的名称'

             git config --global user.email '你的邮箱地址'

2.生成公钥和私钥

            ssh-keygen -t rsa -C "你的邮箱地址"

回车后会看到以下界面。这里是选择ssh文件保存的路径(直接回车),我选择默认路径,即最后一行显示的、 保存在了c盘的这个位置中(c/user/Jioho/.ssh/id_rsa)。

紧接着会让你输入密码(会有2次确认,简短的英语很好理解的)。默认保持不输入(也是直接回车,避免每次clone代码都需要输入密码的麻烦)

然后我们到刚才提示的c盘的目录中,找到我们需要的ssh文件。打开文件夹后,里面会有2份文件,分别为公钥和私钥。

这时候我们就需要把id_rsa.pub文件放到服务器上,准备下一步的工作

2.导入自己的ssh证书

以上生成SSH证书的步骤弄懂后,就需要把自己的ssh公钥证书导入服务器的公钥管理的地方

在服务器中找到  /home/git/.ssh/authorized_keys 文件、如果没有就自己创建一个authorized_keys文件,注意路径不要弄错。

找到刚才放在服务器上的 id_rsa.pub文件。然后使用命令:cat id_rsa.pub >> authorized_keys

注意路径不要弄错,因为我这是在 /home/git/.ssh/ 的目录中了

(如果linux命令用的不熟的,其实可以直接使用winscp编辑文件,把id_rsa.pub文件的内容复制粘贴到authorized_keys文件中。方法不是唯一)

最重要的一点,也是最容易出错的一点!linux一切皆文件,所以要给对应的文件设置好组和权限!!

*注:这里的/home/git/下的文件所有者必须都为git  .ssh的权限为最少700或者755  authorized_keys权限最少为600

​​​​​​​以上就全部完成!!

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值