Hugo 博客搭建与 PaperMod 配置全记录

为什么选 Hugo Hugo 是一个用 Go 写的静态网站生成器。它和 WordPress 这类动态博客的区别是: Hugo WordPress 原理 Markdown → 预生成 HTML 文件 每次访问查数据库 + 渲染 PHP 服务器要求 纯静态文件,Nginx 直接 serve 需要 PHP + MySQL 内存占用 0(只有 Nginx 的几 MB) MySQL 400M+ 安全 没有后台、没有数据库,攻击面极窄 PHP + 插件 = 常见攻击入口 写作方式 VS Code 写 Markdown 浏览器里写 速度 秒开 看服务器性能 版本控制 Git 数据库导出,不优雅 对于一台 2C2G 的轻量服务器,Hugo 是唯一正确的选择。 技术栈 云服务器:腾讯云轻量应用服务器 2C2G 3Mbps(Ubuntu 22.04) 静态生成:Hugo 0.146.5 主题:PaperMod(Gitee 镜像) Web 服务器:Nginx 部署方式:Hugo 生成 HTML → Nginx 直接 serve HTTPS:等域名备案下来后 Let's Encrypt 免费证书 博客目录结构 ~/myblog/ ├── config.yml ← 博客配置(核心文件) ├── content/ ← 所有文章和页面 │ ├── posts/ │ │ ├── 技术/ │ │ ├── 杂文/ │ │ ├── 美食/ │ │ └── 健身/ │ ├── about.md ← 关于页面 │ ├── archives.md ← 时间轴页面 │ ├── search.md ← 搜索页面 │ └── tags/_index.md ← 标签页面 ├── layouts/ ← 自定义布局(覆盖主题默认) │ ├── _default/ │ │ ├── archives.html ← 时间轴模板(来自 sulv-hugo-papermod) │ │ └── search.html ← 搜索模板 │ └── partials/ │ └── index_profile.html ← 首页 profileMode 模板 ├── assets/js/ ← 自定义 JS │ ├── fastsearch.js │ └── fuse.basic.min.js ├── static/img/ ← 静态资源(头像、二维码等) ├── themes/PaperMod/ ← Hugo 主题(不改动) └── deploy.sh ← 构建+部署脚本 config.yml 关键配置 首页:profileMode PaperMod 内置两种首页模式。homeInfoParams 是纯文字,profileMode 是头像 + 按钮布局。选择后者: ...

July 29, 2026 · 3 min · 487 words

云服务器初始配置与 SSH 密钥认证

云服务器初始配置与 SSH 密钥认证 日期:2026-07-28 服务器:腾讯云轻量应用服务器 2核2G3M 40GB SSD(Ubuntu 22.04 LTS) 一、服务器上的三个用户 云服务器上有三个用户,他们各自的身份和角色完全不同: 用户名 UID 本质 能否直接登录 用途 root 0 Linux 超级管理员,拥有最高权限,可以做任何事情(包括删掉整个系统) ❌ 默认禁止远程登录(PermitRootLogin no) 系统底层操作,日常不使用 ubuntu 1000 腾讯云 Ubuntu 镜像默认创建的普通用户,自带 sudo 权限 ✅ 云服务商给你的初始入口,配置好之后作为备用账户 renbudang 1001 你自己创建的普通用户,也已经赋予 sudo 权限 ✅(主账户) 从今以后你日常登录和操作的账户 为什么有三个用户? root → Linux 系统内置的超级管理员。 Ubuntu 默认禁用了它的远程登录,这是安全设计—— root 权限太大,一旦被入侵后果不可控。 日常工作不应该用 root,仅在必要时通过 sudo 提权。 ubuntu → 云服务商(腾讯云)在创建 Ubuntu 虚拟机时自动生成的。 它在你拿到服务器之前就存在了。 它是一个有 sudo 权限的普通用户,是你拿到服务器后第一个能登录的人。 配置完成后保留它作为"紧急备用入口"—— 万一你把 renbudang 的 sudo 权限弄坏了,还能用它救回来。 renbudang → 你给自己创建的日常用户。 sudo usermod -aG sudo renbudang 给了它管理员权限。 从今以后这就是"你"在服务器上的身份。 核心认知 ubuntu 不是 root,它只是一个能用 sudo 提权的普通用户(UID=1000) root 的 UID 永远是 0,这是 Linux 内核判断"是不是 root"的唯一依据 日常操作用 renbudang + sudo,不要直接以 root 身份操作 二、我们在这台服务器上做了什么 操作时间线 1. 购买创建 → 选 Ubuntu 22.04 LTS 系统镜像(纯操作系统,不装任何预装软件) → 设了 renbudang 用户和密码 → 服务器启动,获得公网 IP 2. 首次连接 → 在 Windows PowerShell 里用 ssh renbudang@公网IP 测试连接 → 初始使用密码登录 3. 生成 SSH 密钥对 → 在本地 Windows 上执行 ssh-keygen -t ed25519 → 生成了一对密钥:私钥(id_ed25519)和公钥(id_ed25519.pub) 4. 上传公钥到服务器 → 将公钥内容追加写入服务器的 ~/.ssh/authorized_keys → 服务器从此认这把私钥 5. 配置 SSH 安全加固 → 禁止 root 远程登录 → 禁止密码登录(只用密钥) → 后续连接无需输密码 三、SSH 密钥认证原理(公钥与私钥) 我的问题 “密钥公钥什么的我还是不明白,你是用 Windows 的工具创建了一个密钥,然后上传到云服务器里和用户 renbudang 绑定了吗?” ...

July 28, 2026 · 3 min · 501 words