迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 数据库 > Redis >

Redis密码验证命令AUTH

作者:迹忆 最近更新:2022/12/04 浏览次数:

Redis在安全方面并没有做太大的优化,而是在性能和易用性方面下了很大的功夫。Redis一个很简单的安全方式就是密码验证,这需要用到AUTH命令。下面我们就来看看如何使用这个命令。

在安装完成Redis以后,默认情况下是不需要验证密码的。开启Redis服务以后,可以直接通过客户端连接Redis,并进行相应的操作。

# redis-server   //开启redis服务
# redis-cli    //使用客户端连接
redis> get mykey
“onmpw”   //返回的结果

上面是默认没有密码的情况下进行的操作。下面我们开启密码验证。

对于Redis开启密码验证有两种方式:一种是通过命令行直接设置密码,另一种方式是在redis.conf配置文件中添加密码。

通过命令行直接设置密码

通过这种方式设置的密码仅在当前进程下有效。也就是说,如果我们重启了Redis服务,先前我们设置的密码就不存在了。使用方式如下:

# redis-cli
redis> get mykey
“onmpw” //返回的结果   我们还没有设置密码,所以这里不用验证就可以执行相应的命令
redis> config set requirepass onmpw123
redis> get mykey
(error) NOAUTH Authentication required. //错误信息
redis> auth onmpw123  // 通过auth命令 验证密码
redis> get mykey
“onmpw”   //这里我们看,是不是又能得到我想要的结果了

通过上面的例子,我们可以了解到如何通过命令行来设置密码以及如何通过命令AUTH来进行密码的验证。重启服务以后密码失效。从上面的例子中我们看到有个关键字 requirepass(如果对于vim操作不熟悉,大家可以参考《vim常用命令总结》) ,设置密码需要用到它。并且在下面的通过配置文件来设置密码同样也需要requirepass。

在redis.conf配置文件中添加密码

接下来我们介绍如何在redis.conf中添加密码。其实很简单,在Redis根目录下面存在redis.conf文件,进入Redis根目录,使用vim 编辑该文件。并且查找 requirepass,定位到这一行,并且将前面的#去掉,修改密码。部分内容如下:

################################## SECURITY ###################################
# Require clients to issue AUTH <PASSWORD> before processing any other
# commands.  This might be useful in environments in which you do not trust
# others with access to the host running redis-server.
#
# This should stay commented out for backward compatibility and because most
# people do not need auth (e.g. they run their own servers).
#
# Warning: since Redis is pretty fast an outside user can try up to
# 150k passwords per second against a good box. This means that you should
# use a very strong password otherwise it will be very easy to break.
#
requirepass onmpw123

我们看,requirepass后面就是我们要设置的密码。这时候保存退出该文件,然后重启Redis服务。注意,这里重启Redis服务需要在redis-server 后面加上参数。这个参数就是redis.conf文件路径。

# redis-server /redis.conf所在目录/redis.conf

只有这种方式才能让redis-server服务去检测redis.conf 文件。如果不加参数的话,那redis.conf中的设置是被忽略无效的。

#redis-cli
redis> get mykey
(error) NOAUTH Authentication required. //错误信息
redis> auth onmpw123  // 通过auth命令 验证密码
redis> get mykey
“onmpw”   //这里我们看,是不是又能得到我想要的结果了

AUTH命令返回值

《Redis协议详解》这篇文章中我们介绍了RESP几种数据类型。对于AUTH命令的返回值使用的是Simple Strings 类型。当密码验证正确的时候响应的数据为

“+OK\r\n”

如果验证不成功返回的值为Errors类型

“-Err invalid password”

总结

通过上面两种方式我们了解了如何给Redis设置密码和用AUTH命令验证密码。但是,因为redis的高性能能在短时间接受非常多的尝试性密码,所以请务必设置一个足够复杂的密码以防止可能的攻击。并且,AUTH命令和其他的Redis命令一样是通过非加密方式发送数据的,因此它没有办法阻止拥有足够的网络访问权限的攻击者进行窃听。要想实现数据加密保护,需要新增保护层,例如我们可以使用SSL代理。

就介绍到这里,很多细节的地方需要大家自己去深究。希望本文对大家有所帮助。

上一篇:没有了

下一篇:Redis 在 centos下安装方法及常见问题解决

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

GoLang 电子邮件验证器

发布时间:2023/04/27 浏览次数:195 分类:Go

本篇文章介绍如何在 Go 语言中验证电子邮件。电子邮件需要特定格式; 否则,它们将无法工作。

在 AngularJS 中添加自定义表单验证

发布时间:2023/04/12 浏览次数:106 分类:Angular

本文讨论了有关 AngularJS 自定义验证的所有内容。 AngularJS 自定义验证是一个强大的验证库,允许开发人员创建自定义验证规则。

Git 身份验证

发布时间:2023/04/04 浏览次数:156 分类:Git

本教程演示了将本地仓库连接到 GitHub 上的远程仓库,而不会收到身份验证失败错误消息。

在 PHP 中验证电话号码

发布时间:2023/03/29 浏览次数:129 分类:PHP

本教程演示了如何在 PHP 中验证电话号码的各种方法。

PHP 身份验证

发布时间:2023/03/29 浏览次数:117 分类:PHP

本教程演示了如何在 PHP 中使用基本的 HTTP 身份验证。

HTML 电子邮件验证

发布时间:2023/03/28 浏览次数:140 分类:HTML

在今天的文章中,我们将了解如何使用 HTML 进行电子邮件验证。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便