群暉是個好東西续室,但是要通過外網(wǎng)使用確實會遇到各種問題
前幾天在單位上寫了點代碼貌矿,調(diào)試過程中覺得太需要一個版本管理握童,正好去年買了個群暉,就搭了個SVN server
今天研究了下溯乒,git的分布式架構!覺得可以一用豹爹!又不想把代碼放到github上去(畢竟單位的東西)
git server很快搭建好了裆悄,也新建了一個git項目,然而并不能通過外網(wǎng)操作臂聋!
各種查詢后發(fā)現(xiàn)網(wǎng)上只有通過局域網(wǎng)使用了光稼,為了在單位用上家里的東西
研究了一下午終于搞定!
接下來順便把群暉構建git server一并記下來孩等。
1艾君、準備
Synology 設備一臺
接入網(wǎng)絡路由器(需可配置端口映射)
SSH工具,以xshell為例
2肄方、配置
將NAS接入網(wǎng)絡冰垄,建議固定IP,為解決公網(wǎng)問題权她,本文全部以通過公網(wǎng)構建git server虹茶、使用進行說明。
3隅要、配置NAS
能夠想到以外網(wǎng)連接的朋友已不需要再詳細講解如果通過外網(wǎng)訪問NAS蝴罪,不懂的請自行百度。
我的外網(wǎng)殼域名以website代替步清,端口以port代替要门,若以內(nèi)網(wǎng)配置,將后面的website替換為IP地址即可尼啡。
3.1安裝Git Server暂衡、增加git用戶
建立專用的git用戶,選擇users崖瞭。(該步就是想要外網(wǎng)訪問最大的絆腳石)
在套件中心搜索Git Server安裝狂巢。
安裝成功后,打開Git Server,勾選剛才建立的用戶“git”允許訪問书聚。
3.2創(chuàng)建git目錄
在控制面板中唧领,增加共享文件夾藻雌,我增加的是git
3.3打開家的目錄
控制面板——用戶賬號——高級設置:勾選“啟用家目錄服務”
以上操作是防止在使用SSL登陸時報錯。
3.4啟用SSH
控制面板——終端機和SNMP——終端機:勾選“啟動SSH功能”
因為需要使用的是外網(wǎng)遠程訪問斩个,建議修改商品號在50000以后的不規(guī)則數(shù)字作為新端口
4胯杭、創(chuàng)建git倉庫
接下來使用遠程工具登陸NAS,通過SSH連接建立git倉庫受啥。
注意在連接前更改admin的狀態(tài)為正常做个。
4.1創(chuàng)建并初始化git倉庫
輸入自己外網(wǎng)IP地址或者申請的域名
用admin以SSH方式連接后切換為root權限
sudo -i
Password:
進入剛才建立的共享文件夾,創(chuàng)建倉庫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的外網(wǎng)訪問地址滚局,port是NAS的SSH端口
明明輸入了正確的賬號居暖,密碼,就是永遠連接不正確
經(jīng)過一下午的嘗試藤肢,終于通過連接SSH的方式嘗試成功
在3.1建立賬戶時太闺,建立的git用戶,選擇成users后無法遠程以殼域名方式連接嘁圈,必須修改git為System default admin group后才能連接成功
至此省骂,就可以愉快地使用git了
git clone //下載
git add . //增加代碼至緩存區(qū)
git commit //增加到本地庫
git push //增加到遠程庫
第一篇文章,完最住,待續(xù)钞澳。。涨缚。略贮。。
關鍵字:
群暉 git server Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.