如果使用GitHub Page,直接跟官方文档就,简单无需服务器,完美自动部署
我这里使用的是 阿里云 + GitHub
性子急,不废话直接上配置流程。一些解析话太多,放在后面(见五),大手子们选择性阅读。
此时会自动帮你下载一个 aliyun_ssh.pem 文件,此为私钥信息,请妥善保存
当实例绑定了密钥对之后密码访问的方式将失效,远程连接服务器请改用密钥方式(见四)
进入你的 GitHub 仓库 → Settings → Secrets and variables → Actions → New repository secret
添加以下 3 个 Secret:
Secret Name | 示例值或获取方法 |
---|---|
SERVER_HOST |
你的服务器 IP 地址,如 123.123.123.123 |
SERVER_USER |
服务器用户名,如 ubuntu 或 root |
SERVER_SSH_KEY |
本地的 ~/.ssh/id_rsa 或 .pem 内容(私钥) |
将私钥内容需全部复制,包括 -----BEGIN RSA PRIVATE KEY-----
到 -----END RSA PRIVATE KEY-----
。
在你的 Rspress 项目根目录中创建 .github/workflows/deploy.yml
:
XShell修改远程连接服务器方式
XShell > 会话右键修改 > 身份验证方法 > Public Key > 导入.pem文件确定
.pem 和 id_rsa,二者都是 私钥文件,都是 文本文件,完全可以互用,几乎是改个名字的区别
随时可以通过私钥文件生成公钥
本地(而不是服务器) 输入如下命令通过私钥生成并保存公钥数据 > 打开aliyun_ssh.pub > 复制内容
ssh-keygen -y -f【文件位置/aliyun_ssh.pem】 > aliyun_ssh.pub
代码提交到某个地方,立即触发自动编译,并推送编译后的代码到服务器
即自动部署,涉及两个难点:
如何访问服务器 -- SSH Key + GitHub Action Secrets
如何自动触发 如何进行编译 如何进行推送 -- GitHub Action
两个问题,GitHub 直接一次性解决,他真的,我哭死。
我们需要意识到,GitHub 早已不仅仅是个仓库,对于开发者来说,他几乎是个“云操作系统”.
配置完成之后,我原本每次需要,本地build,再通过XShell打开,代码还得另外push。
现在直接push解决问题,优雅!
阿里云创建密钥对时,自动保存了一份公钥,并下载了一份私钥 实例绑定密钥对,即绑定公钥,即将公钥放进了服务器的 ~/.ssh/authorized_keys 给 XShell 及 GitHub 配置 私钥,即可访问配置了公钥的 服务器