群晖搭建GitServer

in 软件 with 0 comment

在群晖NAS上搭建Git Server,详细记录

注意要点

  1. 群晖NAS需要开启SSH,开启方法控制面板->终端机和SNMP->启动SSH功能(为了安全可以修改SSH端口)
  2. 为了安全最好是能修改SSH的端口,设置GIT用户的全选,修改GIT用户默认目录和BASH不让其登录NAS和使用命令行,只允许使用SSH来推送和下载文件

群晖NAS DOCK界面操作

  1. 安装Git Server
  2. 新建名为git的用户,设置密码,选择Users用户组,一路下一步,对目录和应用权限都不需要,为了安全都选择了拒绝
  3. 打开群晖主菜单运行刚安装的GitServer,将刚建立的GIT用户打勾选中并应用然后关闭

SSH登录群晖系统进行初始化

1 用工具进入群晖,WIN下可以使用PUTTY弹出的安全提示选是

2 使用root登录群晖,密码就是群晖admin的密码

3 修改git用户安全配置和目录,也可以不修改,运行命令

vi /etc/passwd

按I就可以用方向键选择文本,找到GIT用户选项并修改成自己需要的,我这里是要将GIT的库放在volume3硬盘的git目录中,后面的bin/ash可以不改动.我发现几个版本的NAS都不一样,所以这里就这样改

git:x:1028:100:git_users:/volume3/git:/bin/ash

修改后按ESC输入保存命令

:wq

4 建立对应的文件夹和GIT目录

cd /volume3
mkdir git

为GIT用户添加目录权限git:users中的git为用户名,空格后的为目录

chown -R git:users git

5 切换到git用户来执行后面的命令,这里用su - git不行,需要修改权限,简单的办法就是退出PUTTY重新用git用户登录,直接就是git目录了**

6 创建一个git测试仓库,先用cd命令返回用户主目录防止出错

cd
mkdir test.git
cd test.git
git init --bare
ls

可以看到多出了新建的好多文件和目录.这个就是初始化空仓库了

客户端测试

linux和mac都很容易就有Git客户端,这里就不说了,在Windows上安装Git.
msysgit是Windows版的Git,从https://git-for-windows.github.io下载,

安装完成后,在开始菜单里找到“Git”->“Git Bash”,蹦出一个类似命令行窗口的东西,就说明Git安装成功!

从服务端Clone项目来测试服务器,我的项目目录为d:git

cd d:
cd git
git clone ssh://git@192.168.1.222:2222/volume3/git/test.git
提示warning: You appear to have cloned an empty repository,Clone成功.
创建成功,库包含的文件和目录都有了.现在我们在test.git中建立readme.txt,并随便输入一些内容后开始提交上传测试
git add readme.txt
git commit -m "a readme file"
git remote add origin ssh://git@192.168.1.222:2222/volume3/git/test.git
git push -u origin master

测试成功!

如果出现错误提示Fatal:remote origin already exists.先输入

git remote rm origin

再输入git remote add origin ssh://git@192.168.1.222:2222/volume3/git/test.git

就可以上传了.我这里犯了个错误,在nas上用root家里的测试项目,结果没权限,提示我

! [remote rejected] master -> master (n/a (unpacker error))

碰到这种提示一般就是权限问题.可以用root重新登录nas并重新chown -R就行

清理工作

删除测试项目可以用ROOT登录,然后输入:

rm -rf test

使用ssh密钥快捷上传

用git登录nas在目录下建立authorized_keys,权限必须为600

mkdir .ssh
cd .ssh
touch authorized_keys
chmod 600 authorized_keys

在客户端的GitBash中输入

ssh-keygen -t rsa

为了方便我不用密码,一路回车,大概3下,到生成的目录下就可以找到密钥文件,如我的为>c:/users/tx/.ssh/

有些软件和网站需要的是putty模式的密钥,这里可以使用Putty Key Generator来导入并转换密钥

打开putty key generator->LOAD->右下角格式选择所有文件->选择id_rsa->导入->提示密码直接确定->Save private key->搞定收工生成了putty.ppk

将SSH文件备份到本地git目录的.ssh文件夹后我们可以开始上传密钥

因为我们用的都是SSH来操作,所以上传id_rsa到NAS中git/.ssh目录下我们创建的authorized_keys目录

scp .ssh/id_rsa git@192.168.1.222:/volume3/git/.ssh/authorized_keys

这样我们以后就可以直接用密钥省去了麻烦!

到这里群晖NAS上的Git Server搭建就彻底完成了,测试了好多次,主要是网上好多教程跟着做都失败了.少了一些步骤或者顺序错了.希望能帮到大家!

感谢

很感谢廖雪峰大大,因为在他网站上学了好多.GIT和PYTHON都是,大家如果要详细学习GIT的初步应用可以去他那里学习.免费而且有视频.我从一点都不懂到去廖雪峰网站学习了.然后自己独立架设了服务器也就几个小时而已,因为他那个教程做的太好了.当然我学到的也只是初步应用,但是也够了

廖雪峰的Git教程

Responses