存储秘密

configuration.yamlconfiguration.yaml 文件是 Home Assistant 的主要配置文件。它列出了要加载的集成及其特定配置。在某些情况下,需要直接在 configuration.yaml 文件中手动编辑配置。大多数集成可以在 UI 中配置。 [Learn more] 文件是一个纯文本文件,因此任何可以访问该文件的人都可以读取。该文件包含密码和 API 令牌,如果您想分享您的配置,则需要将这些信息替换掉。

通过使用 !secret,您可以从配置文件中移除任何私人信息。这种分离也可以帮助您更容易地跟踪您的密码和 API 密钥,因为它们都存储在一个地方,而不再分散在 configuration.yamlconfiguration.yaml 文件是 Home Assistant 的主要配置文件。它列出了要加载的集成及其特定配置。在某些情况下,需要直接在 configuration.yaml 文件中手动编辑配置。大多数集成可以在 UI 中配置。 [Learn more] 文件或多个 YAMLYAML 是一种人类可读的数据序列化语言。它用于以结构化格式存储和传输数据。在 Home Assistant 中,YAML 用于配置,例如在 configuration.yamlautomations.yaml 文件中。 [Learn more] 文件中(如果您拆分了配置)。

使用 secrets.yaml

将私人信息移动到 secrets.yaml 的工作流程与拆分配置非常相似。在您的 Home Assistant 配置目录中创建一个 secrets.yaml 文件。

configuration.yamlconfiguration.yaml 文件是 Home Assistant 的主要配置文件。它列出了要加载的集成及其特定配置。在某些情况下,需要直接在 configuration.yaml 文件中手动编辑配置。大多数集成可以在 UI 中配置。 [Learn more] 文件中密码和 API 密钥的条目通常如下所示。

rest:
  - authentication: basic
    username: "admin"
    password: "YOUR_PASSWORD"
    ...

这些条目需要被 !secret 和一个标识符替换。

rest:
  - authentication: basic
    username: "admin"
    password: !secret rest_password
    ...

secrets.yaml 文件包含分配给该标识符的相应密码。

rest_password: "YOUR_PASSWORD"

调试秘密

当您开始将配置拆分为多个文件时,您可能会在子文件夹中找到配置。秘密将按以下顺序解析:

  • 与引用秘密的 YAMLYAML 是一种人类可读的数据序列化语言。它用于以结构化格式存储和传输数据。在 Home Assistant 中,YAML 用于配置,例如在 configuration.yamlautomations.yaml 文件中。 [Learn more] 文件位于同一文件夹中的 secrets.yaml
  • 然后,父文件夹将被搜索以找到带有秘密的 secrets.yaml 文件,搜索将在主 configuration.yamlconfiguration.yaml 文件是 Home Assistant 的主要配置文件。它列出了要加载的集成及其特定配置。在某些情况下,需要直接在 configuration.yaml 文件中手动编辑配置。大多数集成可以在 UI 中配置。 [Learn more] 的文件夹停止。

要查看秘密从何处加载,您可以在 secrets.yaml 文件中添加一个选项,或使用 check_config 脚本。后者仅适用于 Home Assistant CoreHome Assistant Core 是 Home Assistant 本身的核心。它是一个 Python 程序,支持每种安装类型,但可以独立安装。 [Learn more] 安装,因为它可以通过 hass 获得。

选项 1:通过向 secrets.yaml 添加以下内容,将秘密从何处检索的信息打印到 Home Assistant 日志中:

logger: debug

这不会将实际秘密的值打印到日志中。

选项 2:对于 Home Assistant Core 安装,您还可以查看秘密从何处检索以及所有 secrets.yaml 文件的内容,使用命令行中的 check_config 脚本

hass --script check_config --secrets

这将打印您所有的秘密。