HA文档 目录

  1. 主页
  2. HA文档
  3. HA文档
  4. 配置进阶
  5. 密码存储

密码存储

这篇文章是系列文章的第3/7篇:

在配置文件中,部分信息有保密性需求,比如http服务的访问密码,比如一些连接外部服务的token、key等等。
对于这些信息,HomeAssistant提供了几种不同的方法进行存储。我们以http服务的访问密码为例,解释HomeAssistant中存储与使用密码的各种方式。

【放置在configuration.yaml中】
这是最简单直接的方式,比如:

上面的配置信息,就将“MY_PASSWORD”设置成了http的访问密码。

【放置在独立的sercet.yaml中】
这种方式与拆分配置文件的做法有点类似,将所有保密性要求高的信息(密码、tocken、key等)单独存放成一个文件,文件名sercets.yaml,存放在配置目录下:

在configuration.yaml中配置:

以上的配置,实际密码设置成了secrets.yaml文件中my_http_password字段的信息“abc1234”。

【放置在Keyring中】
Keyring是在操作系统中存放与获取密码的一种机制,你可以简单认为它实现了一个密码库,提供存储、读取、删除等接口。
在系统中安装Keyring:
pip3 install keyring

如果想设置一个密码,这个密码的名称是“my_new_http_passwd”——输入下面命令后,系统会提示你输入对应的值:
hass --script keyring set my_new_http_passwd

在configuration.yaml中配置(与放在sercet.yaml中一样):

【放置在Credstash中】
Credstash是将密码存储在亚马逊的AWS云服务中的一种机制。可以用下面方式进行安装(需要管理员权限运行):
pip3 install credstash
Credstash的初始配置可以参见相关文档。在HomeAssistant中,其使用方式与Keyring类似,可以打下面命令获得帮助:
hass --script credstash --help
Credstash中设置的密码在configuratio.yaml中的写法与Keyring机制完全一致的。

【优先级别与调试】
大家看到,在配置文件(一般是configuration.yaml)之外保存密码,在配置文件中的语法格式都是一样的(都是!secret my_secret_name)。那么,当my_secret_name在不同的机制中都有值的时候,HomeAssistant会使用哪个呢?

  • 首先,系统会尝试读取配置文件所在目录下的secrets.yaml。
  • 然后,系统会尝试读取配置文件所在目录的上级目录,直到用户的Home根目录。
  • 最后,系统会尝试从Keyring和Credstash中获得信息。

你可以用以下两种方式获得HomeAssistant的serect的相关信息:

  • 在secrets.yaml文件中配置调试日志模式:

    这会在hass输出中显示相应的信息。
  • 使用下面的命令获得信息:
    hass --script check_config --secrets

遇到问题了?快来学习免费在线课程吧,博学老司机在线答疑,找到更多志同道合的HA玩家一起进步

此文不允许转载,如需转载请与BD@hachina.io联系。

这篇文章对您有用吗? 0 0