使用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 公钥
-
登录到远程服务器:
1
ssh root@SSH_IP -p SSH_PORT
-
创建新用户:
1
sudo adduser deployuser
-
为新用户配置 SSH 登录:
1 2 3 4 5
sudo 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
文件中:1
cat ~/.ssh/github-blog-deploy.pub | ssh root@SSH_IP -p SSH_PORT 'cat >> /home/deployuser/.ssh/authorized_keys'
或者手动复制公钥内容并粘贴到
authorized_keys
文件中:1
sudo nano /home/deployuser/.ssh/authorized_keys
粘贴
github-blog-deploy.pub
文件的内容并保存。 -
设置新用户的目录权限: 创建网站部署目录并设置权限:
1
sudo 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~
支付宝
贝宝
微信