Skip to content

部署前准备

先完成本页清单,再打开多个控制台操作。这样可以避免部署到一半才发现域名、权限或 SSH 目标不满足要求。

必备资源

  • 一个 GitHub 账户,用于 Fork 仓库和运行 Actions。
  • 一个可使用 Workers、Durable Objects、D1 与 Pages 的 Cloudflare 账户。
  • 一个已经接入同一 Cloudflare 账户的域名,例如 example.com
  • 一个准备分配给 EdgeSSH 的子域名,例如 ssh.example.com
  • 一台你有权访问、能够从公网连接的 SSH 服务器。
  • 一个可以接收 Cloudflare Access 登录邮件的管理员邮箱,或已有的身份提供程序。

Node.js 只影响本地开发

只用 GitHub Actions 部署时,不需要在自己的电脑安装 Node.js。需要本地开发时,使用 Node.js 22.12.0 或更高版本。

域名要求

正式入口应使用受 Cloudflare Access 保护的自定义域名。后续教程统一使用:

text
ssh.example.com

替换为你自己的域名即可。填写 GitHub Variable 时只写主机名,不要带 https://、端口、路径或末尾斜杠。

SSH 目标要求

目标必须解析到公网 IP。EdgeSSH 会拒绝回环地址、私有地址、链路本地地址和其他不应从公网访问的目标,以降低 SSRF 与 DNS 重绑定风险。

建议为验收准备一个专用的低权限 SSH 账号,并确认:

  • SSH 服务监听公网可达端口。
  • 防火墙允许 Cloudflare Workers 发起连接。
  • 你已准备密码或一个受支持的未加密 OpenSSH 私钥。
  • 你知道首次连接时应该核对的服务器指纹。

正式部署必须填写的 6 个值

这 6 项全部在 GitHub 仓库的 Secrets and variables → Actions 中填写。完成之前不要运行 Deploy workflow:

名称保存位置是否敏感
CLOUDFLARE_ACCOUNT_IDGitHub Actions Variable
CUSTOM_DOMAINGitHub Actions Variable
CLOUDFLARE_API_TOKENGitHub Actions Secret
ACCESS_TEAM_DOMAINGitHub Actions Secret,自动同步为 Worker Secret
ACCESS_AUDGitHub Actions Secret,自动同步为 Worker Secret
ENCRYPTION_KEYGitHub Actions Secret,自动同步为 Worker Secret

WORKER_NAMED1_DATABASE_NAME 是可选项,通常不要填写。默认名称分别是 edgesshedgessh-accounts

不要提前做的事

  • 不要手动创建 D1。Action 会按名称创建或复用数据库。
  • 不要修改 wrangler.toml 中的全零 D1 ID。它是版本库中的安全占位值。
  • 不要把运行时 Secret 保存为 GitHub Variable,也不要写入源码、wrangler.toml 或 Issue。
  • 不要先生成多个 ENCRYPTION_KEY。首次确定后要长期复用同一个值。

准备完成后,进入GitHub Actions 完整部署流程

面向个人管理员的 Cloudflare 边缘 SSH 工作台