一文详解 Synology NAS搭建Git Server

业余时间完成一些代码工程,需要一个代码管理工具,由于此类项目大多要求一定的保密性,此时使用类似Github这种必须开源的gitServer就不太适合了,正好手里有一台群辉NAS,用群辉配置一个Git Server来满足这个要求。

  • 创建GitRepo目录
  • 创建gitcode用户
  • 安装GitServer
  • 开启SSH
  • 配置gitcode账户权限&配置免密登录
  • 创建代码仓库

一、创建GitRepo目录

这里我们需要创建一个GitServer的数据存储的主共享目录:
进入 控制面板 > 共享文件夹 > 新增(GitRepo)

创建GitRepo目录

二、创建gitcode用户

这里创建一个单独的git用户账户,专用于终端代码提交:
进入 控制面板 > 用户帐号 > 新增 (这里我创建的账户名称为gitcode)

创建gitcode用户

用户群组可以使用默认的 users

用户群组可以使用默认 users

分配共享文件夹权限时,将前面创建的GitRepo目录赋予读写权限

GitRepo目录赋予读写权限

应用程序权限全部允许:
应用程序权限全部允许

三、安装GitServer

前往 套件中心 > 搜索与安装Git Server

套件中心 Git Server

完成安装后,打开Git Server,勾选gitcode的用户权限

勾选gitcode的用户权限

四、开启SSH

进入 控制面板 > 终端机和SNMP > 启动SSH功能 > 端口默认为22(端口可根据需要自行定义)

控制面板 > 终端机和SNMP > 启动SSH功能 > 端口默认为22

五、配置权限

开启SSH后,通过管理员gitcode账户便可以在终端中通过ssh命令登录远端NAS了。

  • 更改gitcode帐户目录权限
  • 配置免密登录

5.1 更改gitcode帐户目录权限

  • 1.使用管理员帐号和密码登录:
ssh <管理员账户>@<nas_ip> -p <端口>
// 例如:
ssh [email protected] -p 22
  • 2.切换到root:
sudo -i
  • 3.进入homes目录:
cd /volume1/homes
  • 4.修改git用户目录权限:
chmod -R 755 gitcode

gitcode帐户目录权限

5.2 配置免密登录

  • 1.进入git帐户目录:
cd /volume1/homes/gitcode
  • 2.创建.ssh文件夹:
mkdir .ssh
  • 3.创建authorized_keys文件:
// 进入.ssh
cd /volume1/homes/gitcode/.ssh
// 创建 authorized_keys文件
touch authorized_keys
  • 4.将终端的id_rsa.pub内容拷贝authorized_keys中,多个id_rsa.pub时,可分行处理(一行一个):

authorized_keys文件

  • 5.创建git-shell-commands目录:
    此目录是解决ssh登录该帐号是报 hint: ~/git-shell-commands should exist and have read and execute access. 错误的问题。
// 进入 gitcode 目录
cd /volume1/homes/gitcode
// 创建 git-shell-commands目录
mkdir git-shell-commands

创建git-shell-commands目录

  • 6.设置.ssh目录权限组并赋予权限:
// 进入 gitcode 目录
cd /volume1/homes/gitcode
// 设置权限组
chown -R gitcode:users .ssh
// 赋权
chmod -R 700 .ssh

设置.ssh目录权限组并赋予权限

  • 7.设置authorized_keys文件权限:
cd /volume1/homes/gitcode/.ssh
chmod 600 authorized_keys

设置authorized_keys文件权限

  • 8.到此免密登录配置完成。

六、创建代码仓库

  • 1.使用管理员帐号和密码登录:
ssh <管理员账户>@<nas_ip> -p <端口>
// 例如:
ssh [email protected] -p 22
  • 2.创建代码仓库:
// 进入公共文件夹
cd /volume1/GitRepo
// 创建代码仓库
git --bare init <repo_name>.git
// 修改<repo_name>.git文件及其子目录的归属用户和组
chown -R gitcode:users <repo_name>.git
  • 3.客户端Clone:
git clone ssh://gitcode@<nas_ip>:<端口>/volume1/GitRepo/<repo_name>.git
  • Git Server配置完成。

= THE END =

文章首发于公众号”CODING技术小馆“,如果文章对您有帮助,欢迎关注我的公众号。

猜你喜欢

转载自blog.csdn.net/aiwusheng/article/details/129165776