使用 GitHub Actions 将 Hugo 博客自动部署到远程服务器

前言 假如你经常更新博客内容,每次写完文章后还要手动登录服务器执行 rsync 命令来部署,就显得非常麻烦了。更理想的情况是:每次 push 代码到 GitHub 后,GitHub Actions 自动帮我们构建 Hugo 站点并同步到服务器上,这样我们就可以专注于写作,而不必担心部署细节。 什么是 GitHub Actions GitHub Actions 是 GitHub 提供的一套 CI/CD(持续集成/持续部署)工具,允许我们在代码仓库中定义自动化工作流程。当特定事件发生时(例如 push、pull request、release 等),GitHub Actions 就会触发相应的工作流程,执行预定义的任务。我们可以使用 GitHub Actions 来自动化构建 Hugo 站点,并将生成的静态文件部署到远程服务器上。 准备工作 要使用 GitHub Actions 自动部署 Hugo 博客,我们需要准备以下几个方面: 远程服务器:你需要有一台远程服务器,已经安装了 Nginx 或 Apache,并且配置好了网站根目录(例如 /var/www/html/)。 GitHub 仓库:你需要在 GitHub 上创建一个仓库,用来存放你的博客源码。这个仓库将作为 GitHub Actions 的触发源,当你 push 代码到这个仓库时,GitHub Actions 就会自动执行部署流程。 SSH 密钥:为了让 GitHub Actions 能够安全地连接到你的远程服务器并执行部署操作,你需要生成一对 SSH 密钥,并将公钥添加到服务器的 ~/.ssh/authorized_keys 文件中,同时将私钥存储在 GitHub 仓库的 Secrets 中。 什么是 SSH 密钥 首先,我们需要知道什么是 SSH 协议。SSH(Secure Shell)是一种网络协议,用于在不安全的网络上安全地访问远程计算机。SSH 使用公钥加密技术来验证用户身份和保护数据传输的安全性。 SSH 密钥对由两部分组成:公钥和私钥。公钥可以公开分享,而私钥必须保密。使用 SSH 密钥对进行身份验证时,用户将私钥保存在本地计算机上,并将公钥上传到远程服务器。当用户尝试连接到服务器时,服务器会使用公钥来验证用户的身份,如果验证成功,用户就可以访问服务器。 ...

📅 June 15, 2026 · ⏱️ 12 min · 📝 约 1815 字 · 👁️ 次阅读
Comments