使用 SSH 连接 GitHub Action 服务器

使用 SSH 连接 GitHub Action 服务器

💡 原文中文,约3300字,阅读约需8分钟。
📝

内容提要

GitHub Actions 通过 tmate 提供免费虚拟服务器的 SSH 连接。用户需创建仓库并设置 NGROK_TOKEN 和 SSH_PASSWORD。连接后可进行操作,但会因超时失去控制,服务器最长存活6小时,需重新运行以获取新连接信息。

🎯

关键要点

  • GitHub Actions 通过 tmate 提供免费虚拟服务器的 SSH 连接。
  • 用户需创建仓库并设置 NGROK_TOKEN 和 SSH_PASSWORD。
  • 连接后可进行操作,但会因超时失去控制。
  • 服务器最长存活6小时,需重新运行以获取新连接信息。
  • tmate 连接的第一个实现存在资源浪费的问题。
  • csexton/debugger-action 允许在退出连接后继续执行后续步骤。
  • 使用 ngrok 进行内网穿透,需注册并获取 Authtoken。
  • 创建项目时需添加 NGROK_TOKEN 和 SSH_PASSWORD 的仓库 secrets。
  • ssh-server.sh 脚本用于设置 SSH 服务器和 ngrok。
  • workflow 文件 ssh-server.yml 用于启动 SSH 服务器,最长存活6小时。
  • ActionsVM 提供了另一种创建虚拟服务器的方法,需设置相同的 secrets。
  • 重新运行 jobs 时,SSH 信息会改变。

延伸问答

如何使用 GitHub Actions 连接到虚拟服务器?

用户需要创建一个仓库,并设置 NGROK_TOKEN 和 SSH_PASSWORD,然后使用 tmate 进行 SSH 连接。

tmate 在 GitHub Actions 中的作用是什么?

tmate 允许用户通过 SSH 连接到 GitHub Actions 的虚拟环境,提供交互式操作的能力。

GitHub Actions 中 SSH 连接的最大存活时间是多少?

SSH 连接的最大存活时间为6小时,超过时间后需要重新运行以获取新连接信息。

如何避免在使用 tmate 时造成资源浪费?

可以使用 csexton/debugger-action,它允许在退出连接后继续执行后续步骤,从而减少资源浪费。

如何设置 ngrok 进行内网穿透?

用户需注册 ngrok,获取 Authtoken,并在 GitHub 仓库中添加 NGROK_TOKEN 和 SSH_PASSWORD 的 secrets。

在 GitHub Actions 中,如何创建 SSH 服务器?

需要创建一个 ssh-server.sh 脚本和一个 ssh-server.yml 的 workflow 文件,配置相应的环境变量和步骤。

➡️

继续阅读