# Auth

验证密码是否正确

语法

AUTH [username] password
  • 可用版本:

    1.0.0

  • 时间复杂度:

    O(N) 其中 N 是为用户定义的密码数量

  • ACL 类别:

    @fast, @connection

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

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

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

AUTH <password>

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

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

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

AUTH <username> <password>

为了使用 ACL 列表(参见 参考资料ACL SETUSER)和官方ACL 指南中定义的连接之一来验证当前连接以获取更多信息。

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

# 安全须知

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

# 返回

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

# 历史

  • 从 Redis 版本 6.0.0 开始:添加了 ACL 样式(用户名和密码)。

# 反馈

如果您在此页面上发现问题,或有改进建议,请提交请求以合并或打开存储库中的问题。

Last Updated: 4/18/2023, 8:45:33 AM