部署 Stable Diffusion 后如何设置 API 密钥防止未授权访问

文章导读
部署 Stable Diffusion WebUI 后,防止未授权访问的核心是启动时添加`--api-auth`参数设置认证凭证,并通过防火墙限制 7860 端口仅受信任 IP 访问。若调用外部 API,密钥应存入环境变量而非代码明文。
📋 目录
  1. 命令速用版
  2. 为什么会这样
  3. 分步处理
  4. 怎么验证是否生效
  5. 常见坑
  6. 常见问题
  7. 参考来源
A A

部署 Stable Diffusion WebUI 后,防止未授权访问的核心是启动时添加`--api-auth`参数设置认证凭证,并通过防火墙限制 7860 端口仅受信任 IP 访问。若调用外部 API,密钥应存入环境变量而非代码明文。

先说结论:本地部署需启用 API 认证参数并配置网络隔离,云端调用需通过环境变量管理密钥。

  • 先判断:区分是保护本地 WebUI 接口还是存储第三方 API 密钥
  • 优先做:启动参数增加`--api-auth`,防火墙放行仅限内网或特定 IP
  • 再验证:使用无凭证请求测试接口,确认返回 401 或连接拒绝

命令速用版

本地 WebUI 启动时增加认证与监听控制,以下命令适用于 Linux/macOS 环境:

python launch.py `--api` `--listen` 0.0.0.0 `--api-auth` username:password

Windows 环境使用webui.bat添加相同参数。若需限制仅本机访问,将0.0.0.0改为127.0.0.1

为什么会这样

默认部署往往开放 7860 端口且无认证,导致局域网或公网可直接调用生成接口。Stable Diffusion WebUI 默认配置侧重于易用性,未强制开启访问控制,任何知道服务器 IP 的用户均可消耗计算资源或获取生成数据。

部署 Stable Diffusion 后如何设置 API 密钥防止未授权访问

分步处理

步骤 1:启用 API 访问认证
修改启动脚本,在参数列表中加入`--api-auth`,格式为用户名:密码。此配置位于modules/api/api.py逻辑中,启用后所有 API 请求需携带 Basic Auth 头。

步骤 2:配置防火墙端口限制
使用系统防火墙工具(如ufw或安全组)限制 7860 端口。仅允许受信任的管理 IP 访问,避免对整个网络开放。默认端口风险分析显示,未配置防火墙时端口对全网开放。

步骤 3:安全存储第三方 API 密钥
若使用外部 Stable Diffusion API 服务,密钥不应硬编码在代码中。通过操作系统环境变量读取,例如STABLE_DIFFUSION_API_KEY。代码中调用os.environ.get获取密钥,缺失时程序应报错退出。

怎么验证是否生效

验证 API 认证:使用curl命令不带认证信息访问接口,如curl http://ip:7860/sdapi/v1/txt2img。若配置生效,应返回 401 Unauthorized 状态码。

部署 Stable Diffusion 后如何设置 API 密钥防止未授权访问

验证网络隔离:在非信任网络环境下尝试连接服务器 IP 的 7860 端口。若防火墙生效,连接应超时或被拒绝。

验证密钥读取:运行调用脚本时不设置环境变量,检查程序是否按预期报错提示密钥缺失,而非使用空值或默认值。

常见坑

监听地址配置错误:使用`--listen` 0.0.0.0会监听所有网卡,若未配合防火墙或认证,等同于公网暴露。仅内网使用时建议绑定127.0.0.1

密钥明文泄露:将 API 密钥直接写在 Python 脚本或配置文件中,一旦代码库泄露会导致密钥失效风险。生产环境应使用密钥管理服务或环境变量。

部署 Stable Diffusion 后如何设置 API 密钥防止未授权访问

忽略 HTTPS 传输:若 API 接口涉及敏感数据传输,未启用 HTTPS 可能导致密钥在传输过程中被窃听。公共网络环境下必须强制 HTTPS。

常见问题

如何获取第三方 Stable Diffusion API 密钥?

需访问官方服务平台注册账户,在 API Settings 页面生成并复制密钥。该密钥用于调用云端生成服务,与本地 WebUI 认证密码不同。

忘记设置的 API 认证密码怎么办?

需停止服务,修改启动脚本中的`--api-auth`参数为新密码后重启。WebUI 不支持通过界面直接找回或重置 API 认证密码。

多人协作时如何管理不同权限?

原生`--api-auth`仅支持单一凭证。多用户权限管理需通过反向代理或中间件层实现,或在应用层构建用户系统与 API 调用逻辑分离。

参考来源

  • 完整指南:如何使用 Stable Diffusion API (stablediffusionapi.com)
  • 比迪丽 LoRA 镜像安全加固:防火墙端口限制、登录认证接入、API 调用权限管控
  • 高效协作指南:多人同时使用 stable-diffusion-webui 的 5 个实用技巧
  • Vidu 1.5:Stable Diffusion API 安全存储