折腾一下私有Git仓库的部署----Gitea
1.说在前面
Git私有库的搭建本身其实并不算什么困难的事情,但是在部署的过程中遇到的一些ssh问题确实让我踩坑花了点时间,趁着现在还记得清楚,这篇文章除了打算记录私有Git本地仓库的搭建,更是要记录一些ssh相关的的配置。
这次的本地Git搭建是基于Gitea来做的,作为一个轻量的DevOps平台,Gitea占用资源少,在用不到GitLab完整功能的情形下,很好用,也比原生Git更易于管理。
搭建所在的系统是Linux,用的是Unraid系统,其他系统应该也是大差不差。
2.Gitea安装部署
Gitea的部署十分简单,这里以在Unraid中使用docker的方式部署为例子来说明。
首先是Docker镜像的安装,进入Unraid的APP界面,在CA中搜索Gitea,选取一个版本后install即可,docker需要配置的东西并不多,需要注意要将SSH端口改成22以外的,因为22端口大多被屏蔽了,这里改成3022。
随后打开Gitea的WebUI界面,然后按照安装引导进行仓库的配置,因为配置时候没有截图,所以放上网上的配置连接:Gitea配置
3.SSH配置
首先,使用ssh的前提是需要在Gitea上配置好SSH密钥访问。
在客户端生成ssh公钥,windows的公钥一般在C:\Users\27697\.ssh
文件夹下面,id_rsa.pub
文件就是了,用记事本打开就能看见ssh公钥,然后Gitea的“设置->SSH/GPG密钥”中新增一个ssh密钥,将key复制进去即可。
更详细的SSH公钥生成和配置在这里不多做赘述,大体与Github的设置一致,两者可以用同一个ssh key不需要分开生成。
然后是这次搭建踩坑的第一个地方,首先在Gitea创建一个空仓库,仓库里面随便放点什么东西,Gitea仓库页面跟Github一样,提供了Code的Clone访问链接,但是ssh链接给的是:ssh://git@[Server-IP]:3022/[User]/[Repository].git
,且先不说ssh://
的前缀很多余的问题,实际上直接去拿git@[Server-IP]:3022/[User]/[Repository].git
Clone也是拉不到代码的,因为正确的格式应该是git@[Server-IP]:[User]/[Repository].git
,所以完整正确的ssh拉取的代码应该是:
1 | git clone git@[Server-IP]:[User]/[Repository].git |
另外,遇到的另一个问题是,用http的方式去clone Gitea仓库中的东西是没问题的:
1 | git clone http://[Server-IP]:3000/[User]/[Repository].git |
1 | Cloning into '[Repository]'... |
但是如果说用SSH的方式去拉取仓库,就会出现问题网络问题,要么是链接不到仓库,要么就是端口问题,这是因为客户端(本机)ssh还需要配置,我是在windows环境下进行配置的,进入C:\Users\27697\.ssh
,找到Config文件,如果没有就手动创建一个,并进行以下配置:
1 | Host [Server-IP] |
这样,就可以愉快的使用ssh来拉取私有库的Gitea代码了!
1 | git clone git@[Server-IP]:[User]/[Repository].git |