1.7 KiB
1.7 KiB
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) 手动触发
- 打开 GitHub → Actions
- 选择 🔐 SSH Connectivity Check
- 点击 Run workflow
- 可选输入:
ssh_portremote_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),并与工作流日志中的指纹逐项比对。