通过公网使用群晖构建的git server

群晖是个好东西,但是要通过外网使用确实会遇到各种问题

前几天在单位上写了点代码,调试过程中觉得太需要一个版本管理,正好去年买了个群晖,就搭了个SVN server
今天研究了下,git的分布式架构!觉得可以一用!又不想把代码放到github上去(毕竟单位的东西)
git server很快搭建好了,也新建了一个git项目,然而并不能通过外网操作!
各种查询后发现网上只有通过局域网使用了,为了在单位用上家里的东西
研究了一下午终于搞定!

接下来顺便把群晖构建git server一并记下来。

1、准备

Synology 设备一台
接入网络路由器(需可配置端口映射)
SSH工具,以xshell为例

2、配置

将NAS接入网络,建议固定IP,为解决公网问题,本文全部以通过公网构建git server、使用进行说明。

3、配置NAS

能够想到以外网连接的朋友已不需要再详细讲解如果通过外网访问NAS,不懂的请自行百度。
我的外网壳域名以website代替,端口以port代替,若以内网配置,将后面的website替换为IP地址即可。

3.1安装Git Server、增加git用户

建立专用的git用户,选择users。(该步就是想要外网访问最大的绊脚石)
在套件中心搜索Git Server安装。

安装git.png

安装成功后,打开Git Server,勾选刚才建立的用户“git”允许访问。

3.2创建git目录

在控制面板中,增加共享文件夹,我增加的是git

3.3打开家的目录

控制面板——用户账号——高级设置:勾选“启用家目录服务”
以上操作是防止在使用SSL登陆时报错。

3.4启用SSH

控制面板——终端机和SNMP——终端机:勾选“启动SSH功能”
因为需要使用的是外网远程访问,建议修改商品号在50000以后的不规则数字作为新端口

4、创建git仓库

接下来使用远程工具登陆NAS,通过SSH连接建立git仓库。
注意在连接前更改admin的状态为正常。

4.1创建并初始化git仓库

输入自己外网IP地址或者申请的域名


image.png

用admin以SSH方式连接后切换为root权限

sudo -i
Password:

进入刚才建立的共享文件夹,创建仓库test交初始化

cd /volume1/git
mkdir test.git
cd test.git
git init --bare

4.2修改权限

cd /volume1/git
chown -R git:users test.git
chmod -R 770 test.git

至此远程git仓库建立完成

5、远程客户端使用git

以git clone为例
git clone ssh://git@website:port/volume1/git/test.git
重点来了,下面是我遇到的报错

$ git clone ssh://git@website:port/volume1/git/test.git      
Cloning into 'test'...
git@website's password:
Permission denied, please try again.
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.

第一行的website是nas的外网访问地址,port是NAS的SSH端口

明明输入了正确的账号,密码,就是永远连接不正确
经过一下午的尝试,终于通过连接SSH的方式尝试成功


image.png

在3.1建立账户时,建立的git用户,选择成users后无法远程以壳域名方式连接,必须修改git为System default admin group后才能连接成功

至此,就可以愉快地使用git了

git clone //下载
git add . //增加代码至缓存区
git commit //增加到本地库
git push //增加到远程库

第一篇文章,完,待续。。。。。

关键字:
群晖 git server Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.

你可能感兴趣的:(通过公网使用群晖构建的git server)