使用gogs搭建git服务器记录

昨晚半夜网上一个朋友找到我,说是使用gogs搭建git服务器,使用ssh操作要免密啥啥啥的~也没描述清楚。就是要ssh的方式,提交时候不要账号密码,心想这不就三下的事情吗?结果折腾到晚上一点,没好~敢肯定的是他按照网上的毒教程,被坑了!还是自己本地虚拟机配置一下吧~

环境说明

  • 本机Ubuntu16.10
  • virtualbox上运行的是Centos7
  • 虚拟机中mysql已经安装好
  • 虚拟机中firewall已禁用,安装了iptables
  • 虚拟机中已经安装git

步骤

  • 去gogs网站下载,这里下载的是0.10.18版本,文件名是linux_amd64.zip
  • mysql建立gogs数据库
  • 新建用户名字为git的用户(用户目录/home/git)
  • 解压下载的文件,然后运行程序
  • 配置,安装
  • 现在已经可以访问了,也可以使用http方式进行clone和提交了
  • 配置ssh方式

下载gogs

去gogs网站下载,https://dl.gogs.io/ ,我下载的是0.10.18,linux 64位版本。

建立gogs数据库

在mysql中建立gogs数据库。

新建git用户

在虚拟机Centos中新建一个git用户。

  • 创建git组:sudo groupadd git
  • 创建git用户,分到git组中:sudo useradd -g git git
  • 设置git用户的密码:sudo passwd git

接下来切换到刚才新建的git用户,一定要切换到这个git用户!!!!

切换用户:su git

解压文件,运行

现在已经切换到git这个用户了,切记一定要切换到git这个用户才能执行以下步骤。

首先进入/home/git目录下,将下载的文件解压到/home/git目录下并重新命名,我这里是命名为gogs。然后进入gogs文件夹下,运行./gogs web,应该没啥错。

配置,安装

上面运行完成之后,打开浏览器输入:http://localhost:3000/install ,就可以看到安装配置页面了,里面配置根据自己需要配置(请先阅读文档了解清楚了,再自定义配置。)我这里填了mysql的密码,其他基本都是默认值。点击保存,有可能会提示git的path问题,请安装git!

测试http方式

现在已经可以访问了,访问:http://localhost:3000 不出意外,可以看到页面了。接下来需要注册一个用户,然后登录,添加一个仓库,在局域网中使用http的方式clone,我猜应该没啥意外情况。我这里是http://192.168.1.104:3000/dachengxi/gogs-test.git,你的根据情况来。

使用ssh方式

首先需要在你的机器上生成ssh公钥:ssh-keygen -t rsa -C "your_email@example.com",各种回车之后完成,生成的文件在你的用户主目录下的.ssh文件夹下,其中id_rsa.pub文件中的内容是我们需要的。打开此文件,复制所有内容。

然后打开gogs页面,点击右上角头像,找到用户设置,然后选择管理SSH密钥,在这里添加一个密钥,名字随便输,下面内容是你刚才复制的那个id_rsa.pub文件中的内容,添加进去保存,就好了。(其实这一步就是在你git用户主目录下的.ssh文件夹下生成一个叫做authorized_keys的文件,里面内容就是上面你添加的内容)。

测试ssh方式

上面的步骤没出啥错,现在已经可以使用,我这里是git@192.168.1.104:dachengxi/gogs-test.git,你的根据自己情况来定。

其他

其他各种高级功能不做讨论,请自己找文档找文章找自己!

请确认虚拟机防火墙开放了3000端口,22端口。

请确认git已经安装。

请确认你运行gogs的时候,是你新建的git用户。

坚持原创技术分享,您的支持将鼓励我继续创作!
Fork me on GitHub