GitHub Actions + SSH 自动部署教程
💡
原文中文,约2900字,阅读约需7分钟。
📝
内容提要
本文介绍了如何通过 GitHub Actions 和 SSH 实现自动部署。首先需准备可访问的服务器并生成 SSH 密钥,配置服务器 SSH 授权,添加 GitHub Secrets,编写部署脚本和 GitHub Actions Workflow 文件。最后,通过推送代码测试部署流程,并解决常见问题。
🎯
关键要点
- 本文介绍如何通过 GitHub Actions 和 SSH 实现自动部署。
- 部署前提包括拥有可访问的服务器和已上传至 GitHub 的项目。
- 生成 SSH 密钥并配置服务器 SSH 授权。
- 在 GitHub 中添加 Secrets,包括服务器 IP、端口、用户名和私钥。
- 编写服务器端部署脚本 restart.sh,确保赋予执行权限。
- 创建 GitHub Actions Workflow 文件,监听 main 分支的推送。
- 测试部署流程并查看 GitHub Actions 页面上的日志。
- 常见问题包括 SSH 被防火墙拦截、私钥不匹配、脚本权限错误等。
- 建议使用专用 SSH 密钥和配置虚拟环境或 Docker。
- 文章包含免责声明,提醒读者谨慎使用技术信息。
❓
延伸问答
如何生成用于 GitHub Actions 的 SSH 密钥?
在本地终端执行命令 `ssh-keygen -t rsa -b 4096 -f ~/.ssh/github-action-deploy -C 'github-action'`,会生成私钥和公钥。
如何配置服务器的 SSH 授权?
将公钥添加到服务器的 `~/.ssh/authorized_keys` 文件中,并确保文件权限设置为 600。
在 GitHub 中如何添加 Secrets?
进入仓库设置,选择 Secrets and variables,然后添加 SSH_HOST、SSH_PORT、SSH_USER 和 SSH_PRIVATE_KEY 等信息。
如何编写服务器端的部署脚本?
在项目目录中创建 `restart.sh` 文件,包含停掉旧服务、拉取最新代码和启动服务的命令,并赋予执行权限。
如何创建 GitHub Actions Workflow 文件?
在项目根目录下创建 `.github/workflows/deploy.yml` 文件,定义触发条件和部署步骤。
常见的 SSH 部署问题有哪些?
常见问题包括 SSH 被防火墙拦截、私钥不匹配、脚本权限错误等。
➡️