因为想要备份服务器数据库到自己家里的服务器,又不想使用root账户来操作,所以我创建了一个新的账户专门用来备份指定的文件夹。这个教程就是用来创建账户、设置密钥登录以及授予指定文件夹权限的教程。

比较基础的Linux(Ubuntu)系统操作。

这个是Alist部署在家里,连接云服务器教程,也就是一台服务器的Alist连接另一台服务器的文件系统

创建账户

我使用宝塔面板创建了一个账户

创建账户

设置一个用户名和密码,密码以后也用不到,所以可以随便设置。

创建用户

我这个文章以一个名字叫做“backup_helper”的用户来进行设置。

创建密钥

使用SSH的root用户进行切换到刚才创建的用户

1
su backup_helper

生成密钥对

1
ssh-keygen -t rsa -b 4096 -C "backup_helper@example.com" -f ~/.ssh/id_rsa
  • 该命令会在 backup_helper 用户的 ~/.ssh/ 目录下生成一个 4096 位的 RSA 密钥对。

  • -C 参数是用于添加一个注释,通常是该密钥的用途或者与该密钥相关的电子邮件地址。

  • -f 参数指定私钥的保存路径,这里会保存为 ~/.ssh/id_rsa。

输入完回车需要输入一个密文,用来加密这个密钥对,推荐设置一个,如果不想设置可以直接回车。

确认生成的密钥文件

1
ls ~/.ssh/

检查 ~/.ssh/ 目录,确认已生成两个文件:

  • id_rsa(私钥)

  • id_rsa.pub(公钥)

保存私钥

我们登录的时候需要私钥,所以我们需要获取一下。

首先,进入 ~/.ssh 目录,这里通常保存着你的私钥和公钥文件:

1
cd ~/.ssh

使用 cat 命令查看你的私钥(默认文件名是 id_rsa):

1
cat id_rsa

复制所有的打印内容。

私钥内容通常以以下形式开始:

1
2
3
-----BEGIN OPENSSH PRIVATE KEY-----
...(私钥内容)
-----END OPENSSH PRIVATE KEY-----

或者:

1
2
3
-----BEGIN RSA PRIVATE KEY-----
...(私钥内容)
-----END RSA PRIVATE KEY-----

获取完之后确保文件权限,可以执行

1
chmod 600 id_rsa

即只有文件所有者可以读取和写入

添加文件夹权限

我需要将需要接入alist的文件夹添加backup_helper用户的读取权限。

在基于 Debian(如 Ubuntu)的系统上,你可以执行以下命令来安装 acl 包:

1
2
sudo apt update
sudo apt install acl

在基于 Red Hat(如 CentOS)的系统上,可以使用以下命令安装 acl 包:

1
sudo yum install acl

安装完成后,你就可以使用 setfacl 命令了。

例如我需要设置/www/backup这个文件夹(宝塔面板备份文件夹)

1
2
getfacl /www/backup
getfacl /www/backup/*

使用递归命令确保文件夹及文件都有权限

1
sudo setfacl -R -m u:backup_helper:rx /www/backup

这个命令将递归地为所有文件和子目录授予 backup_helper 用户 读取和执行权限。

添加到Alist

我需要将服务器文件夹接入alist,方便我实现跨设备备份,或者直接备份到网盘等等。

添加一个存储

驱动选择SFTP,挂在路径起一个名字,用于显示在Alist中。

路径

然后填写关于服务器的信息。

服务器信息

  1. 填写服务器ip和SSH端口号,例如123.123.444.555:22(如果没有手动更改SSH端口默认为22端口)

  2. 填写之前创建的用户名

  3. 填写之前的私钥

  4. 密语:在生成私钥时设置的密码,如果没有设置密码,则为空

  5. 服务器上的文件夹地址

大功告成

成功的将Alist接入到了服务器,现在就可以在家里备份留存在服务器的备份内容啦!

alist

  1. 数据库备份的目录
  2. 企业版宝塔的增量备份数据库
  3. 面板备份目录