guanghulab/docs/ssh-server-connectivity-check.md

48 lines
1.7 KiB
Markdown
Raw Permalink Normal View History

# SSH 连接检查工作流(手动触发)
用于确认 GitHub Actions 是否能通过 SSH 连接服务器,并在日志中列出指定目录文件。
- Workflow 文件:`.github/workflows/ssh-connectivity-check.yml`
- 触发方式:`workflow_dispatch`Actions 页面手动运行)
## 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`,并在流程结束后清理。
- 工作流不会打印私钥内容。
- `permissions``contents: read`,遵循最小权限原则。
- 生产环境建议配置 `SSH_KNOWN_HOSTS`;若未配置,工作流会使用 `ssh-keyscan` 回退并打印指纹,需自行进行带外校验。
- 指纹校验建议:请向服务器管理员获取可信指纹(例如通过控制台登录服务器执行 `for k in /etc/ssh/ssh_host_*_key.pub; do ssh-keygen -lf \"$k\"; done`),并与工作流日志中的指纹逐项比对。