有没有一种方法可以在redis.conf中保存加密密码?

3

我想在Redis中添加密码。

我想知道是否有一种方法可以将加密后的密码保存在redis.conf文件中,而不是明文呢?

或者有没有不在redis.conf文件中存储密码的方法呢?

3个回答

3

默认情况下,直到最新版本-6.0.1,redis.conf仍然不支持加密密码。

虽然这种情况是无法完全避免的,但你可以编写一个包装器启动脚本来自动化此过程,该脚本将接受密码作为参数并启动服务。一旦服务启动完成,尽管这不推荐且应该避免,你可以删除配置文件或更改其中的密码。在 REDIS 启动之前,你需要再次运行启动脚本/重新输入原始密码。但这可能会引起其他问题。

请注意 -> redis.conf 可以通过 Linux/操作系统权限进行保护,这是最好的方法。


这个建议对于多租户场景中的隔离(许多Redis客户端,每个客户端都有不同的密码和数据)没有帮助。 - Benedetto

2
不,Redis不支持对auth进行加密密码。您可以在官方文档中查看详细信息。
管理员会在redis.conf文件中以明文方式设置密码。密码应该足够长,以防止暴力攻击。
此外,AUTH命令(像其他Redis命令一样)是以未加密的方式发送的,因此无法防止具有足够访问网络进行窃听的攻击者。
您可以使用config set requirepass yourpassword来设置密码,并且这不需要服务器重新启动即可实时设置密码。但是,在服务器重新启动时,将使用之前的密码(写在conf文件中)/没有密码(如果未设置)来验证请求。

1

虽然目前加密还不是一个选项,但 Redis 6 引入了 ACL(访问控制列表),您可以在 redis.conf 文件中存储 SHA256 哈希密码。

请注意,这并不是加密!

从 redis-cli:

acl setuser yourUser on #951249c8e32817cb0727ba2b1440f008c49c582e5daca4a0bd6d64eed1291a37

来自redis.conf

user yourUser on #951249c8e32817cb0727ba2b1440f008c49c582e5daca4a0bd6d64eed1291a37

附加说明:

您可能需要禁用没有密码的default用户:

从redis-cli中执行:

acl setuser default off

来自 redis.conf

user default off

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接