使用GitHub Actions自动部署Hugo博客到远程服务器
目录
在Hugo博客全部内容都准备好之后,可以将博客部署到远程服务器上。本文介绍如何使用 GitHub Actions 自动化部署 Hugo 博客到远程服务器。
为了安全起见,不建议使用密码登录远程服务器。相反,可以使用 SSH 密钥登录。在远程服务器上创建一个新用户,为该用户生成 SSH 密钥,并配置 GitHub Actions 使用该密钥登录到远程服务器并部署 Hugo 博客。
在本地生成 SSH 密钥对
本地生成的SSH密钥对,用于新用户登录到远程服务器。在本地生成SSH密钥对:
|
|
按提示操作,设置文件保存路径(设置为 ~/.ssh/github-blog-deploy)和密码短语(可以为空)。
生成的文件包括:
- 公钥文件:
github-blog-deploy.pub - 私钥文件:
github-blog-deploy
在远程服务器上配置新用户的 SSH 公钥
-
登录到远程服务器:
1ssh root@SSH_IP -p SSH_PORT -
创建新用户:
1sudo adduser deployuser -
为新用户配置 SSH 登录:
1 2 3 4 5sudo mkdir /home/deployuser/.ssh sudo chmod 700 /home/deployuser/.ssh sudo touch /home/deployuser/.ssh/authorized_keys sudo chmod 600 /home/deployuser/.ssh/authorized_keys sudo chown -R deployuser:deployuser /home/deployuser/.ssh -
将本地生成的公钥复制到远程服务器:
将
github-blog-deploy.pub文件的内容添加到/home/deployuser/.ssh/authorized_keys文件中:1cat ~/.ssh/github-blog-deploy.pub | ssh root@SSH_IP -p SSH_PORT 'cat >> /home/deployuser/.ssh/authorized_keys'或者手动复制公钥内容并粘贴到
authorized_keys文件中:1sudo nano /home/deployuser/.ssh/authorized_keys粘贴
github-blog-deploy.pub文件的内容并保存。 -
设置新用户的目录权限: 创建网站部署目录并设置权限:
1sudo chown -R deployuser:deployuser /var/www/public
更新 GitHub Actions 配置文件
-
将私钥添加到 GitHub Secrets:
- 登录 GitHub,进入Hugo博客所在仓库。
- 依次点击
Settings->Secrets and variables->Actions->New repository secret。 - 添加新的 Secret,
SSH_PRIVATE_KEY,值为github-blog-deploy文件的内容(私钥)。按照实际情况添加SSH_PRIVATE_KEY、SSH_IP和SSH_PORT三个 Secrets。
-
更新 GitHub Actions 配置文件:
添加文件内容如下:
|
|
Buy me a coffee~
支付宝
贝宝
微信