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 被防火墙拦截、私钥不匹配、脚本权限错误等。

➡️

继续阅读