AUTH

验证连接。

语法

AUTH [username] password

引入版本:1.0.0

复杂度摘要:O(N)

AUTH命令在两种情况下验证当前连接:

  1. 如果 Redis 服务器通过 requirepass 选项进行密码保护。
  2. Redis 6.0 实例或更高版本正在使用 Redis ACL系统。

Redis 6 之前的 Redis 版本只能理解该命令的一个参数版本:

AUTH "temp-pass"

此表单仅根据 requirepass 设置的密码进行身份验证。在此配置中,Redis 将拒绝刚刚连接的客户端执行的任何命令,除非连接通过 AUTH 进行身份验证。

如果通过 AUTH 提供的密码与配置文件中的密码匹配,服务器将回复 OK 状态代码并开始接受命令。否则,将返回错误,客户端需要尝试新密码。

使用Redis ACL时,应以扩展方式给出命令:

AUTH "test-user" "strong_password"

为了使用 ACL 列表中定义的连接之一(请参阅 ACL SETUSER)和官方 ACL指南 了解更多信息来验证当前连接。

使用 ACL 时,命令的单参数形式(仅指定密码)假定隐式用户名是“default”。

必需参数

password

用于验证的密码。对于 requirepass,这是服务器密码;对于 ACL,它是用户的密码。

可选参数

username

进行身份验证的 ACL 用户名。如果省略,则使用 default 用户。

详细说明

安全须知

由于Redis的高性能特性,可以在很短的时间内并行尝试大量密码,因此请确保生成强且非常长的密码,以使这种攻击不可行。生成强密码的一个好方法是通过 ACL GENPASS 命令。

Redis Software 与 Redis Cloud 兼容性

Redis
软件
Redis
Cloud
说明
✅ 标准
✅ 主动-主动
✅ 标准
✅ 主动-主动

返回值

RESP2

简单字符串回复:OK,如果密码或用户名/密码对无效,则出现错误。

RESP3

简单字符串回复:OK,如果密码或用户名/密码对无效,则出现错误。

资料来源:Redis 官方 AUTH 文档;中文内容参考 Redis 文档许可。