fix(ci): 修正 preview-deploy 默认 SSH host/user 为正确值 #613
Reference in New Issue
Block a user
Delete Branch "fix/preview-deploy-defaults"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
问题
preview-deploy.yml 中 SSH 连接的默认值有误:
172.30.18.197,Runner 容器访问不到deploy,服务器实际用户是 root修改
PREVIEW_SSH_HOST默认值从172.30.18.197→47.98.113.167(公网IP)PREVIEW_SSH_USER默认值从deploy→root端口默认值本来就是
22222,无需修改。注:同步已更新 Gitea Secrets 中所有 SSH 密钥为新生成的可用密钥对(ssh-ed25519)。
📊 审查概览
❌ 需修改的问题(严重)
[.gitea/workflows/preview-deploy.yml: 160] 默认用户设置为 root 存在严重安全风险
deploy修改为root违反了最小权限原则。如果 CI 环境变量PREVIEW_SSH_USER未正确配置或为空,脚本将以 root 权限执行部署操作。这可能导致误操作破坏系统环境,且增加了被攻击后的破坏面。deploy或其他非特权用户。如果确实需要 root 权限执行某些操作,应在目标服务器上通过sudo配置白名单,而不是直接使用 root 用户登录。[.gitea/workflows/preview-deploy.yml: 159] 硬编码公网 IP 暴露基础设施并增加攻击面
172.30.18.197修改为公网地址47.98.113.167。这不仅将服务器地址暴露在代码仓库中,还使得部署流量暴露在公网,增加了被中间人攻击或扫描攻击的风险。之前的内网 IP 配置更为安全。PREVIEW_SSH_HOST) 中,不要在代码中硬编码公网 IP。如果必须保留默认值,建议使用内网地址或移除默认值以强制要求配置 Secret。💡 改进建议(一般)
:-...部分)。如果关键的环境变量(如 Host 或 User)缺失,应该让流程直接报错失败,而不是静默地回退到一个硬编码的值(尤其是错误的或不安全的值),这样可以防止部署到错误的目标服务器。✅ 良好实践
set -eux,能够在命令执行失败或变量未定义时及时终止,这是良好的 Shell 脚本编写习惯。🤖 由 AI 代码审查机器人自动生成 | 2026-07-19 20:43:20 | 模型:
🚀 预览环境已部署
CI全绿,自动审批通过。
CI全绿,自动审批通过。
🗑️ 预览环境已清理
PR #613 已关闭或合并,对应的预览环境已被清理。