群晖是个好东西,但是要通过外网使用确实会遇到各种问题
前几天在单位上写了点代码,调试过程中觉得太需要一个版本管理,正好去年买了个群晖,就搭了个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 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地址或者申请的域名
用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的方式尝试成功
在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.