
标题 2
这里是内容。
标题 3
这里是内容。
2022/1/12小于 1 分钟
——「」
more
注释之前的内容被视为文章摘要。
本博客基于 VuePress 框架搭建而成,使用的主题为 VuePress-Theme-Hope,但是提供的自动部署功能仅限于 GitHub Pages,而笔者想要在轻量应用服务器上实现博客的自动部署,于是就有了本项目。
总体而言,本项目的需求如下。
#!/bin/sh
# 该脚本必须以 root 权限运行
if [ "$(id -u)" -ne 0 ]; then
echo "Please run as root"
exit 1
fi
username="blog-user"
# 创建 blog-user 用户
useradd \
-c "Blog User, used to maintain blog resources and SSL certificates" \
-m \
-s "/bin/sh" \
"${username}"
# 确保 blog-user 用户无密码且无法通过密码登录
passwd -dlq "${username}"
# 生成 ssh 密钥,算法为 ed25519,文件名为 blog_user
ssh-keygen \
-t ed25519 \
-C "Blog User" \
-N "" \
-f "./blog_user"
# 获取 blog-user 的用户目录
user_dir=$(getent passwd "${username}" | cut -d ':' -f6)
# 将公钥添加到 blog-user 用户的 authorized_keys 文件中
mkdir -p "${user_dir}/.ssh"
cat "./blog_user.pub" >>"${user_dir}/.ssh/authorized_keys"
# 提醒用户保存私钥
echo "Please save the private key file: blog_user"
# 退出
exit 0
实际的文章内容。
段落 1 文字段落 1 文字段落 1 文字段落 1 文字段落 1 文字段落 1 文字段落 1 文字段落 1 文字段落 1 文字段落 1 文字段落 1 文字段落 1 文字。
段落 2 文字段落 2 文字段落 2 文字段落 2 文字段落 2 文字段落 2 文字段落 2 文字段落 2 文字段落 2 文字段落 2 文字段落 2 文字段落 2 文字段落 2 文字段落 2 文字。
VuePress 主要从 Markdown 文件生成页面。因此,你可以使用它轻松生成文档或博客站点。
你需要创建并编写 Markdown,以便 VuePress 可以根据文件结构将它们转换为不同的页面。