
DirectAdmin 中的登录密钥是一项强大的安全功能,允许您无需使用密码即可通过身份验证访问控制面板。您无需输入用户名和密码组合,而是使用一个包含唯一加密密钥的特殊 URL。这种方法对于自动化脚本、部署流水线、监控系统以及任何原本可能需要在配置文件中嵌入密码的场景来说,安全性更高。
什么是登录密钥?
登录密钥是 DirectAdmin 内置的基于令牌的身份验证机制。创建登录密钥时,DirectAdmin 会生成一个唯一的 URL,在浏览器中打开该 URL 即可访问您的账户。您可以为每个密钥配置特定权限、限制为特定 IP 地址,并设置有效期。密钥永远不会泄露您的实际密码,并且可以随时撤销,而无需更改您的主账户密码。
相比密码的优势
- 不会暴露密码 — 登录密钥无法用于推导或泄露您的实际密码
- 可撤销 — 您可以随时删除登录密钥,而不会影响其他密钥或您的主登录
- IP 限制 — 密钥可以锁定到特定 IP 地址,因此即使密钥 URL 泄露,也无法从未经授权的位置使用
- 有效期控制 — 设置密钥在特定日期后到期,降低遗忘的自动化令牌带来的风险
- 便于审计 — 每个密钥都可以命名标注,方便追踪哪个系统使用哪个密钥
- 适合自动化 — 脚本、监控工具和 CI/CD 流水线无需存储您的真实密码即可进行身份验证
如何创建登录密钥
- 登录 DirectAdmin,进入我的账户。
- 点击登录密钥(或根据您的 DirectAdmin 版本在高级功能 → 登录密钥下查找)。
- 点击创建登录密钥。
- 输入密钥的描述性名称,以便日后识别(例如"监控脚本"或"备份自动化")。
- 如需密钥自动过期,请设置有效期 — 留空则表示永不过期。
- 可选择在允许的 IP字段中将密钥限制为特定 IP 地址。
- 选择此密钥的权限级别 — 您可以将其限制为只读或允许完全控制。
- 点击创建。DirectAdmin 将生成登录密钥 URL。
- 安全地复制并保存登录密钥 URL — 之后将不再显示。
设置 IP 白名单
IP 白名单是登录密钥最重要的安全功能之一。当您在允许的 IP 字段中输入 IP 地址(或范围)时,登录密钥只能从该特定 IP 访问。这意味着即使有人获取了密钥 URL,也无法从您的授权 IP 地址以外的位置使用它。对于服务器自动化,请输入您的 VPS 或独立服务器的 IP。对于个人访问,请输入您的办公室或家庭静态 IP。
如何使用登录密钥登录
使用登录密钥非常简单 — 密钥 URL 已包含所有身份验证信息。在浏览器中打开登录密钥 URL,DirectAdmin 将自动对您进行身份验证,无需输入用户名或密码,即可立即登录。对于自动化脚本,您可以将此 URL 与 curl 或类似工具结合使用,以编程方式触发 DirectAdmin API 操作。
登录密钥权限:选择合适的访问级别
并非所有登录密钥都需要对您的 DirectAdmin 账户拥有完全访问权限。DirectAdmin 允许您根据密钥的用途创建具有不同权限范围的密钥。选择最低权限访问级别是基本的安全原则 — 只为自动化脚本授予其实际需要的权限,不多也不少。
- 完全访问密钥 — 等同于您的主账户登录。可以执行您账户上可用的任何操作。应始终设置 IP 限制和有效期。
- 仅 API 密钥 — 限制为 DirectAdmin 的 API 端点。无法通过 Web 界面登录。非常适合服务器自动化脚本和部署流水线。
- 只读密钥 — 可以查询信息但无法进行更改。非常适合只需检查账户状态、使用统计或资源可用性的监控工具。
当为第三方(例如开发者或临时支持工程师)创建密钥时,始终创建具有短有效期的受限密钥,而不是共享您的主密码。当他们的工作完成后,只需删除该密钥。您的账户保持完整,您的密码也从未被共享。
将登录密钥与 DirectAdmin API 结合使用
登录密钥最强大的使用场景是与 DirectAdmin API 集成,用于自动化服务器管理。您不必将真实密码编码到配置文件或环境变量中,而是使用可以随时撤销的登录密钥,而不影响您的主账户凭据。
cURL API 调用示例
DirectAdmin API 使用标准 HTTP 请求。使用 curl 以 HTTP Basic Auth 凭据的形式传递您的用户名和登录密钥:
- 列出域名:
curl -s "https://yourdomain.com:2222/CMD_API_SHOW_DOMAINS" -u "username:YOUR_KEY" - 列出电子邮件账户:
curl -s "https://yourdomain.com:2222/CMD_API_POP?action=list&domain=example.com" -u "username:YOUR_KEY" - 创建子域名:
curl -s -d "action=create&domain=sub.example.com" "https://yourdomain.com:2222/CMD_API_SUBDOMAIN" -u "username:YOUR_KEY" - 获取磁盘使用情况:
curl -s "https://yourdomain.com:2222/CMD_API_QUOTA" -u "username:YOUR_KEY"
这些 API 调用可以嵌入到 Shell 脚本、Python 自动化脚本或 CI/CD 流水线阶段中。由于登录密钥可以独立于密码撤销,您可以在例行维护期间安全地轮换密钥,而无需重新部署整个自动化基础设施。
在 Python 脚本中使用密钥
对于基于 Python 的自动化,请使用带有 HTTP Basic Auth 的 requests 库。将您的 DirectAdmin 用户名作为身份验证用户名,将登录密钥作为密码传递。在生产环境中始终使用 HTTPS 并验证 SSL 证书,以防止中间人攻击。
怀疑登录密钥泄露时如何撤销
如果您发现异常的 API 活动、收到安全警报,或发现登录密钥 URL 意外提交到了公开仓库,请立即采取行动。您的响应速度直接决定了泄露密钥可能造成的损害程度。
事件响应步骤
- 立即使用您的主用户名和密码登录 DirectAdmin。
- 前往高级功能 > 登录密钥。
- 点击删除立即删除可疑密钥。密钥 URL 立即失效 — 没有延迟。
- 检查您的 DirectAdmin 访问日志和网站错误日志,以识别使用泄露密钥进行的任何未经授权的操作。
- 作为额外预防措施更改您的主账户密码,即使登录密钥无法泄露您的密码。
- 审计所有其他登录密钥,删除不再活跃使用的密钥。
- 使用更严格的 IP 白名单和更短的有效期创建替换密钥。
登录密钥相比密码在事件响应中的关键优势在于速度:您可以撤销特定密钥,而不影响您的主登录或使用不同密钥的其他自动化系统。这种精细化控制使事件处置比完整密码重置更快、更有针对性。
登录密钥最佳实践总结
妥善管理一套登录密钥可以显著减少您的攻击面。以下是保持 DirectAdmin 账户安全同时享受基于令牌的身份验证便利性的最佳实践总结:
- 使用描述性名称命名密钥 — 使用"Monitoring-2026-Q2"或"Backup-Script-Prod"等名称,以便在审计时立即识别每个密钥的用途。
- 始终设置 IP 限制 — 如果使用该密钥的系统有静态 IP,请将密钥限制为该 IP。即使只有一个 IP 限制,也能大幅降低泄露密钥的可用性。
- 设置有效期 — 尤其是向外部方颁发的密钥。当您忘记手动撤销密钥时,自动过期是您的安全网。
- 永远不要将密钥存储在版本控制中 — 使用环境变量、密钥管理器或加密配置文件,而不是在源代码中硬编码密钥。
- 定期轮换密钥 — 每三到六个月审查所有活跃密钥。删除未使用的密钥,并为活跃密钥创建新的替换密钥。
- 使用最低必要权限 — 不要为只需要读取数据的监控脚本使用完全访问密钥。
- 监控访问日志 — 定期检查 DirectAdmin 访问日志,查找异常的 API 调用模式或来自意外 IP 地址的访问。
删除登录密钥
要撤销登录密钥,请前往 DirectAdmin 中的登录密钥,在列表中找到要删除的密钥,然后点击删除。密钥立即失效 — 使用该密钥的任何 URL 将不再有效。当承包商的访问权限结束、自动化系统退役或您怀疑密钥已泄露时,此功能非常有用。
最佳实践:对于自动化系统访问,登录密钥明显优于密码。永远不要在脚本或配置文件中嵌入您的 DirectAdmin 密码 — 始终使用具有最低必要权限和 IP 限制的登录密钥。这样,即使您的服务器遭到入侵,该密钥也无法从其他位置使用。
DirectAdmin 主机,具备高级安全功能
AsiaGB 主机方案包含 DirectAdmin,配备登录密钥、双因素认证(2FA)、IP 限制及所有高级安全功能,全面保护您的账户安全。
查看托管方案