Elasticsearch:找回密码 - Password Recovery

Posted Elastic 中国社区官方博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Elasticsearch:找回密码 - Password Recovery相关的知识,希望对你有一定的参考价值。

如果你对如何为 Elasticsearch 集群设置安全的话,那么请阅读我之前的文章 “Elasticsearch:设置 Elastic 账户安全”。安全对于一个 Elasticsearch 是非常重要的。否则我们的集群无异于在裸奔下运行。在进行下面的练习之前,建议参考文章  “Elasticsearch:设置 Elastic 账户安全” 为自己的集群设置安全。

假如有一天,我们忘记了我们的 Elasticsearch 集群,那么我们有什么办法能找回我们的集群的密码呢?

我们首先发现在 Elasticsearch 的安装目录下,有一个 utility 叫做 elasticsearch-users:

$ pwd
/Users/liuxg/elastic3/elasticsearch-7.13.0
$ ls bin/elasticsearch-users
bin/elasticsearch-users

我们可以使用这个工具找回我们的用户密码。我们首先来查看一下这个工具的一些用法:

$ ./bin/elasticsearch-users --help
Manages elasticsearch file users

Commands
--------
useradd - Adds a file user
userdel - Deletes a file based user
passwd - Changes the password of an existing file based user
roles - Edit roles of an existing user
list - List existing file based users and their corresponding roles

Non-option arguments:
command              

Option             Description        
------             -----------        
-E <KeyValuePair>  Configure a setting
-h, --help         Show help          
-s, --silent       Show minimal output
-v, --verbose      Show verbose output

从上面,我们可以看出来,它可以创建和删除一些用户。这个为我们重设密码提供了便利。

假如我们忘记了超级用户 elastic 的密码,那么我们该怎么办呢?

我们使用如下的步骤:

1)首先,我们来创建另外一个超级用户 newadmin:

bin/elasticsearch-users useradd newadmin -p password -r superuser

在上面, 我们创建了一个叫做  newadmin 的超级用户,并且它的密码叫做 password。

如果我们使用  Kibana 的话,我们可以直接使用这个用户进行登录:

 2)我们接下来使用这个刚刚创建的超级用户来针对原有的 elastic 用户进行重置密码:

curl -s --user newadmin:password -XPUT "http://localhost:9200/_xpack/security/user/elastic/_password?pretty" -H 'Content-Type: application/json' -d'
{
  "password" : "password1"
}
'

在上面,我们重置用户 elastic 的密码为 password1。我们可以通过如下的命令来检查我们是否可以通过这个重置的密码来对集群进行访问:

curl --user elastic:password1 -X GET "http://localhost:9200?pretty"
$ curl --user elastic:password1 -X GET "http://localhost:9200?pretty"
{
  "name" : "liuxg",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "-vtUaRdHSnGJb5XdGC32bA",
  "version" : {
    "number" : "7.13.0",
    "build_flavor" : "default",
    "build_type" : "tar",
    "build_hash" : "5ca8591c6fcdb1260ce95b08a8e023559635c6f3",
    "build_date" : "2021-05-19T22:22:26.081971330Z",
    "build_snapshot" : false,
    "lucene_version" : "8.8.2",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

当然我们也可以使用 elastic/password1 在 Kibana 界面上进行登录:

以上是关于Elasticsearch:找回密码 - Password Recovery的主要内容,如果未能解决你的问题,请参考以下文章

linux下找回mysql的root密码

elasticsearch-7.12.1集群设置账号密码(亲测可用)

命令行下修改elasticsearch7.5.1的密码

人人网的密码忘了如何找回或登入?

电脑登录密码忘记了怎么找回?

如何用TTL找回OPENWRT的密码