搭建Git服务器
在套件中心安装 Git Server
创建一个用户
创建一个新用户,用来保存git repo 数据, 假设账户名为git
控制面板 -> 用户账户 -> 新增
启用 用户家服务
进入 控制面板 -> 用户账户 -> 高级 中启用 “用户家服务”。
启用 SSH 功能
Git Server需要通过 SSH 进行访问, 进入 控制面板 -> 终端及 SNMP 中勾选 “启用 SSH 功能”。
通过 SSH 连接到 Synology NAS
使用SSH工具(Windows Terminal, Putty, Xshell等) 连接 Synology NAS
账号和密码为创建用户时输入的内容,按提示输入用户名,密码通过后即可连接成功。
通过证书设置免密登录
用户的主目录为: /var/services/homes/git/
在主目录下 创建 .ssh目录, 在.ssh目录下创建 authorized_keys 文件, 密钥保存在这个文件中
完成后目录结构如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
root@DiskStation:/var/services/homes/git# ll
total 0
drwxr-xr-x 1 git users 726 Dec 7 21:21 .
drwx--x--x+ 1 root root 58 Dec 7 21:17 ..
drwx------ 1 git users 30 Dec 6 12:37 .ssh
root@DiskStation:/var/services/homes/git# cd .ssh/
root@DiskStation:/var/services/homes/git/.ssh# ll
total 4
drwx------ 1 git users 30 Dec 6 12:37 .
drwxr-xr-x 1 git users 726 Dec 7 21:21 ..
-rw-r--r-- 1 git users 2408 Dec 6 11:35 authorized_keys
root@DiskStation:/var/services/homes/git/.ssh# more authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDLZE20i2x2ms4BzrLwOsusHa/Xe2x4bA4fhJvlcTF9yVGJZEaHKHOPOGbxAxGtP0igqjIp95yRPwBX+YYWL9oG26LSBVZ8fuDbcj/TVVIP5rsG+5W4UrZxZHrPd91LQRCfIWPr7XfjTCZr9amaan7GCw2Zf/1pSiYmhfI4yWwteB/29TOavWNf1+ArWm/dFtfA
Nea6/BTJFRjrJuhh91VR1exOxEFK7gVRmg6KsmKzGNhSPkzlhRXLyQz7ttyaCY6VIH6NyHWjMnd8Io/tfpv7mL89/XfdnKgmkhzeUWUoAgvDBGnZpaFRV9PnSZDvV5BPcBx7WG9+4yPrAqj8x knightli@ubuntu
|
修改文件和目录的权限信息
1
2
|
chmod 700 .ssh
chmod 644 .ssh/authorized_keys
|
修改sshd的配置文件 /etc/ssh/sshd_config, 注意要有以下三行, 如果用#注释的,要打开注释, 没有对应的行,则需要添加。
1
2
3
|
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
|
设置成功后,可以不需要ssh密码直接SSH登录Synology NAS, 这步是为了以后使用git命令时免于每次都输入密码。
开始使用Git Server
在服务器端创建项目仓库
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
git@DiskStation:~$ mkdir my_project
git@DiskStation:~$ cd my_project/
git@DiskStation:~/my_project$ git init --bare
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: git branch -m <name>
Initialized empty Git repository in /volume1/homes/git/my_project/
|
client端操作
1
2
3
|
C:\Users\knightli>git clone git@192.168.8.100:my_project
Cloning into 'my_project'...
warning: You appear to have cloned an empty repository.
|
命令行中clone后的git是服务器创建的账号名称
my_project是项目的仓库名称
完成clone后,后续可以正常操作。
push 完成后数据保存在Synology NAS 的 git用户主目录下
1
2
3
4
5
6
7
8
9
10
11
12
|
git@DiskStation:~/my_project$ ll
total 12
drwxr-xr-x 1 git users 98 Dec 7 22:23 .
drwxr-xr-x 1 git users 746 Dec 7 22:23 ..
drwxr-xr-x 1 git users 0 Dec 7 22:23 branches
-rw-r--r-- 1 git users 66 Dec 7 22:23 config
-rw-r--r-- 1 git users 73 Dec 7 22:23 description
-rw-r--r-- 1 git users 23 Dec 7 22:23 HEAD
drwxr-xr-x 1 git users 506 Dec 7 22:23 hooks
drwxr-xr-x 1 git users 14 Dec 7 22:23 info
drwxr-xr-x 1 git users 16 Dec 7 22:23 objects
drwxr-xr-x 1 git users 18 Dec 7 22:23 refs
|
Hyper Backup定时备份
git repo数据都位于/var/services/homes/git/下,只需备份此目录就可以
安装 Hyper Backup
配置 Hyper Backup