认证
Syntax
AUTH [username] password
- Available since:
- 1.0.0
- Time complexity:
- O(N) where N is the number of passwords defined for the user
- ACL categories:
-
@fast
,@connection
,
AUTH命令在两种情况下对当前连接进行身份验证:
- 如果Redis服务器通过
requirepass
选项设置了密码保护。 - 一个 Redis 6.0 实例或更高版本正在使用 Redis ACL 系统。
Redis 6 之前的版本只能理解命令的单参数版本:
AUTH <password>
此表单仅针对使用requirepass
设置的密码进行身份验证。
在此配置中,Redis将拒绝由刚连接的客户端执行的任何命令,除非通过AUTH
进行身份验证。
如果通过AUTH提供的密码与配置文件中的密码匹配,服务器将回复OK
状态码并开始接受命令。
否则,将返回错误,客户端需要尝试新的密码。
当使用Redis ACLs时,命令应以扩展方式给出:
AUTH <username> <password>
为了验证当前连接与ACL列表中定义的连接之一(请参阅ACL SETUSER
)以及官方ACL指南以获取更多信息。
当使用ACLs时,命令的单参数形式,即仅指定密码时,假设隐式用户名为“default”。
安全通知
由于Redis的高性能特性,可以在非常短的时间内并行尝试大量密码,因此请确保生成一个强且非常长的密码,以使这种攻击不可行。生成强密码的一个好方法是通过ACL GENPASS
命令。
RESP2/RESP3 回复
Simple string reply:OK
, or an error if the password, or username/password pair, is invalid.
历史
- 从Redis版本6.0.0开始:添加了ACL样式(用户名和密码)。