elasticsearch-keystore
编辑elasticsearch-keystore编辑
elasticsearch-keystore
命令管理 Elasticsearch 密钥库中的 安全设置。
概要编辑
bin/elasticsearch-keystore ( [add <settings>] [-f] [--stdin] | [add-file (<setting> <path>)+] | [create] [-p] | [has-passwd] | [list] | [passwd] | [remove <setting>] | [show [-o <output-file>] <setting>] | [upgrade] ) [-h, --help] ([-s, --silent] | [-v, --verbose])
描述编辑
此命令应以运行 Elasticsearch 的用户身份运行。
目前,所有安全设置都是特定于节点的设置,必须在每个节点上具有相同的值。因此,您必须在每个节点上运行此命令。
当密钥库受密码保护时,您必须在 Elasticsearch 启动时每次提供密码。
对密钥库的修改不会自动应用于正在运行的 Elasticsearch 节点。对密钥库的任何更改将在您重新启动 Elasticsearch 时生效。某些安全设置可以 显式重新加载,而无需重新启动。
只有某些设置被设计为从密钥库中读取。但是,没有验证可以阻止密钥库中不支持的设置,它们可能会导致 Elasticsearch 无法启动。要查看密钥库中是否支持某个设置,请参阅设置参考。
参数编辑
-
add <settings>
- 将设置添加到密钥库。可以将多个设置名称指定为
add
命令的参数。默认情况下,系统会提示您输入设置的值。如果密钥库受密码保护,系统还会提示您输入密码。如果密钥库中已经存在设置,您必须确认是否要覆盖当前值。如果密钥库不存在,您必须确认是否要创建密钥库。要避免这两个确认提示,请使用-f
参数。 -
add-file (<setting> <path>)+
- 将文件添加到密钥库。
-
create
- 创建密钥库。
-
-f, --force
- 当与
add
参数一起使用时,该命令不再提示您在覆盖密钥库中的现有条目之前进行确认。此外,如果您尚未创建密钥库,它将创建一个被混淆但不受密码保护的密钥库。 -
-h, --help
- 返回所有命令参数。
-
has-passwd
- 如果密钥库存在且受密码保护,则返回成功消息。否则,该命令将以退出代码 1 失败并返回错误消息。
-
list
- 列出密钥库中的设置。如果密钥库受密码保护,系统会提示您输入密码。
-
-p
- 当与
create
参数一起使用时,该命令会提示您输入密钥库密码。如果您未指定-p
标志或输入空密码,则密钥库将被混淆,但不受密码保护。 -
passwd
- 更改或设置密钥库密码。如果密钥库受密码保护,系统会提示您输入当前密码和新密码。您可以选择使用空字符串来删除密码。如果密钥库不受密码保护,您可以使用此命令来设置密码。
-
remove <settings>
- 从密钥库中删除设置。可以将多个设置名称指定为
remove
命令的参数。 -
show <setting>
- 显示密钥库中单个设置的值。传递
-o
(或--output
)参数将设置写入文件。如果写入标准输出(终端),则设置的值始终被解释为 UTF-8 字符串。如果设置包含二进制数据(例如,通过add-file
命令添加的数据),请始终使用-o
选项写入文件。 -
-s, --silent
- 显示最少输出。
-
-x, --stdin
- 当与
add
参数一起使用时,您可以通过标准输入 (stdin) 传递设置值。用回车符或换行符分隔多个值。请参阅 将设置添加到密钥库。 -
upgrade
- 升级密钥库的内部格式。
-
-v, --verbose
- 显示详细输出。
示例编辑
创建密钥库编辑
要创建 elasticsearch.keystore
,请使用 create
命令
bin/elasticsearch-keystore create -p
系统会提示您输入密钥库密码。一个受密码保护的 elasticsearch.keystore
文件将与 elasticsearch.yml
文件一起创建。
更改密钥库的密码编辑
要更改 elasticsearch.keystore
的密码,请使用 passwd
命令
bin/elasticsearch-keystore passwd
如果 Elasticsearch 密钥库受密码保护,系统会提示您输入当前密码,然后输入新密码。如果它不受密码保护,系统会提示您设置密码。
列出密钥库中的设置编辑
要列出密钥库中的设置,请使用 list
命令。
bin/elasticsearch-keystore list
如果 Elasticsearch 密钥库受密码保护,系统会提示您输入密码。
将设置添加到密钥库编辑
可以使用 add
命令添加敏感字符串设置,例如 Cloud 插件的身份验证凭据
bin/elasticsearch-keystore add the.setting.name.to.set
系统会提示您输入设置的值。如果 Elasticsearch 密钥库受密码保护,系统还会提示您输入密码。
您还可以使用 add
命令添加多个设置
bin/elasticsearch-keystore add \ the.setting.name.to.set \ the.other.setting.name.to.set
系统会提示您输入设置的值。如果 Elasticsearch 密钥库受密码保护,系统还会提示您输入密码。
要通过标准输入 (stdin) 传递设置值,请使用 --stdin
标志
cat /file/containing/setting/value | bin/elasticsearch-keystore add --stdin the.setting.name.to.set
多个设置的值必须用回车符或换行符分隔。
将文件添加到密钥库编辑
您可以使用 add-file
命令添加敏感文件,例如 Cloud 插件的身份验证密钥文件。设置和文件路径以 setting path
对的形式指定。设置的值将是文件添加到密钥库时文件路径的二进制内容。
bin/elasticsearch-keystore add-file the.setting.name.to.set /path/example-file.json
您可以使用 add-file
命令添加多个文件
bin/elasticsearch-keystore add-file \ the.setting.name.to.set /path/example-file.json \ the.other.setting.name.to.set /path/other-example-file.json
如果 Elasticsearch 密钥库受密码保护,系统会提示您输入密码。
显示密钥库中的设置编辑
要显示密钥库中设置的值,请使用 show
命令
bin/elasticsearch-keystore show the.name.of.the.setting.to.show
如果设置包含二进制数据,您应该使用 -o
(或 --output
)选项将其写入文件
bin/elasticsearch-keystore show -o my_file binary.setting.name
如果 Elasticsearch 密钥库受密码保护,系统会提示您输入密码。
从密钥库中删除设置编辑
要从密钥库中删除设置,请使用 remove
命令
bin/elasticsearch-keystore remove the.setting.name.to.remove
您还可以使用 remove
命令删除多个设置
bin/elasticsearch-keystore remove \ the.setting.name.to.remove \ the.other.setting.name.to.remove
如果 Elasticsearch 密钥库受密码保护,系统会提示您输入密码。
升级密钥库编辑
有时,密钥库的内部格式会发生变化。当从包管理器安装 Elasticsearch 时,在包升级期间会对磁盘上的密钥库进行升级以更新到新格式。在其他情况下,Elasticsearch 会在节点启动期间执行升级。这要求 Elasticsearch 对包含密钥库的目录具有写入权限。或者,您可以使用 upgrade
命令手动执行此类升级
bin/elasticsearch-keystore upgrade