guanghulab/docs/ssh-server-connectivity-check.md
2026-05-10 13:12:44 +08:00

1.7 KiB
Raw Permalink Blame History

SSH 连接检查工作流(手动触发)

用于确认 GitHub Actions 是否能通过 SSH 连接服务器,并在日志中列出指定目录文件。

  • Workflow 文件:.github/workflows/ssh-connectivity-check.yml
  • 触发方式:workflow_dispatchActions 页面手动运行)

1) 需要配置的 Secrets

最小必需:

  • SSH_HOST(或兼容使用 ZY_SERVER_HOST
  • SSH_USER(或兼容使用 ZY_SERVER_USER
  • SSH_PRIVATE_KEY(或兼容使用 ZY_SERVER_KEY

可选:

  • SSH_PORT(默认 22
  • SSH_KNOWN_HOSTS(如果不配,工作流会自动执行 ssh-keyscan
  • REMOTE_PATH(默认 ~,也可在手动触发时通过 input 覆盖)

2) 手动触发

  1. 打开 GitHub → Actions
  2. 选择 🔐 SSH Connectivity Check
  3. 点击 Run workflow
  4. 可选输入:
    • ssh_port
    • remote_path

3) 如何判断成功

日志中应出现:

  • CONNECT_OK(表示 SSH 连通性测试通过)
  • REMOTE_PATH=...
  • pwd 输出
  • ls -lah 输出
  • find ... -maxdepth 2 的文件列表(最多 200 行)

4) 安全说明

  • 私钥仅写入 runner 临时目录 ~/.ssh/id_rsa,并在流程结束后清理。
  • 工作流不会打印私钥内容。
  • permissionscontents: read,遵循最小权限原则。
  • 生产环境建议配置 SSH_KNOWN_HOSTS;若未配置,工作流会使用 ssh-keyscan 回退并打印指纹,需自行进行带外校验。
  • 指纹校验建议:请向服务器管理员获取可信指纹(例如通过控制台登录服务器执行 for k in /etc/ssh/ssh_host_*_key.pub; do ssh-keygen -lf \"$k\"; done),并与工作流日志中的指纹逐项比对。