为了账号安全,请及时绑定邮箱和手机立即绑定

如何设置redis 的权限密码

如何设置redis 的权限密码

婷婷同学_ 2019-05-16 10:10:49
如何设置redis 的权限密码
查看完整描述

2 回答

?
尚方宝剑之说

TA贡献1788条经验 获得超4个赞

redis作为一个高速数据库,在互联网上,必须有对应的安全机制来进行保护,方法有2,如下。
1.比较安全的办法是采用绑定IP的方式来进行控制。
请在redis.conf文件找到如下配置
# If you want you can bind a single interface, if the bind option is not
# specified all the interfaces will listen for incoming connections.
#
# bind 127.0.0.1

把# bind 127.0.0.1前面的 注释#号去掉,然后把127.0.0.1改成你允许访问你的redis服务器的ip地址,表示只允许该ip进行访问
这种情况下,我们在启动redis服务器的时候不能再用:redis-server,改为:redis-server path/redis.conf 即在启动的时候指定需要加载的配置文件,其中path/是你上面修改的redis配置文件所在目录,这个方法有一点不太好,我难免有多台机器访问一个redis服务。
2.设置密码,以提供远程登陆
打开redis.conf配置文件,找到requirepass,然后修改如下:
requirepass yourpassword
yourpassword就是redis验证密码,设置密码以后发现可以登陆,但是无法执行命令了。
命令如下:
redis-cli -h yourIp -p yourPort//启动redis客户端,并连接服务器
keys * //输出服务器中的所有key
报错如下
(error) ERR operation not permitted

这时候你可以用授权命令进行授权,就不报错了
命令如下:
auth youpassword

另外,在连接服务器的时候就可以指定登录密码,避免单独输入上面授权命令
命令如下:
redis-cli -h yourIp-p yourPort -a youPassword

除了在配置文件redis.conf中配置验证密码以外,也可以在已经启动的redis服务器通过命令行设置密码,但这种方式是临时的,当服务器重启了密码必须重设。命令行设置密码方式如下:
config set requirepass yourPassword

有时候我们不知道当前redis服务器是否有设置验证密码,或者忘记了密码是什么,我们可以通过命令行输入命令查看密码,命令如下:
config get requirepass

如果redis服务端没有配置密码,会得到nil,而如果配置了密码,但是redis客户端连接redis服务端时,没有用密码登录验证,会提示:operation not permitted,这时候可以用命令:auth yourpassword 进行验证密码,再执行 config set requirepass,就会显示yourpassword
由于redis并发能力极强,仅仅搞密码,攻击者可能在短期内发送大量猜密码的请求,很容易暴力破解,所以建议密码越长越好,比如20位。




查看完整回答
反对 回复 2019-05-17
?
万千封印

TA贡献1891条经验 获得超3个赞

redis配置密码1.通过配置文件进行配置yum方式安装的redis配置文件通常在/etc/redis.conf中,打开配置文件找到

[plain] view plain copy

  • #requirepass foobared  

  • 去掉行前的注释,并修改密码为所需的密码,保存文件


  • [plain] view plain copy

  • requirepass myRedis  

  • 重启redis


  • [plain] view plain copy

  • sudo service redis restart  

  • #或者  

  • sudo service redis stop  

  • sudo redis-server /etc/redis.conf  

  • 这个时候尝试登录redis,发现可以登上,但是执行具体命令是提示操作不允许


  • [plain] view plain copy

  • redis-cli -h 127.0.0.1 -p 6379  

  • redis 127.0.0.1:6379>  

  • redis 127.0.0.1:6379> keys *  

  • (error) ERR operation not permitted  

  • redis 127.0.0.1:6379> select 1  

  • (error) ERR operation not permitted  

  • redis 127.0.0.1:6379[1]>   

  • 尝试用密码登录并执行具体的命令看到可以成功执行


  • [plain] view plain copy

  • redis-cli -h 127.0.0.1 -p 6379 -a myRedis  

  • redis 127.0.0.1:6379> keys *  

  • 1) "myset"  

  • 2) "mysortset"  

  • redis 127.0.0.1:6379> select 1  

  • OK  

  • redis 127.0.0.1:6379[1]> config get requirepass  

  • 1) "requirepass"  

  • 2) "myRedis"  

  • 2.通过命令行进行配置

    [plain] view plain copy

  • redis 127.0.0.1:6379[1]> config set requirepass my_redis  

  • OK  

  • redis 127.0.0.1:6379[1]> config get requirepass  

  • 1) "requirepass"  

  • 2) "my_redis"  

  • 无需重启redis


  • 使用第一步中配置文件中配置的老密码登录redis,会发现原来的密码已不可用,操作被拒绝


  • [plain] view plain copy

  • redis-cli -h 127.0.0.1 -p 6379 -a myRedis  

  • redis 127.0.0.1:6379> config get requirepass  

  • (error) ERR operation not permitted  

  • 使用修改后的密码登录redis,可以执行相应操作


  • [plain] view plain copy

  • redis-cli -h 127.0.0.1 -p 6379 -a my_redis  

  • redis 127.0.0.1:6379> config get requirepass  

  • 1) "requirepass"  

  • 2) "my_redis  

  • 尝试重启一下redis,用新配置的密码登录redis执行操作,发现新的密码失效,redis重新使用了配置文件中的密码


  • [plain] view plain copy

  • sudo service redis restart  

  • Stopping redis-server:                                     [  OK  ]  

  • Starting redis-server:                                     [  OK  ]  

  • redis-cli -h 127.0.0.1 -p 6379 -a my_redis  

  • redis 127.0.0.1:6379> config get requirepass  

  • (error) ERR operation not permitted  

  • redis-cli -h 127.0.0.1 -p 6379 -a myRedis  

  • redis 127.0.0.1:6379> config get requirepass  

  • 1) "requirepass"  

  • 2) "myRedis"  


  • 除了在登录时通过 -a 参数制定密码外,还可以登录时不指定密码,而在执行操作前进行认证。


  • [plain] view plain copy

  • redis-cli -h 127.0.0.1 -p 6379  

  • redis 127.0.0.1:6379> config get requirepass  

  • (error) ERR operation not permitted  

  • redis 127.0.0.1:6379> auth myRedis  

  • OK  

  • redis 127.0.0.1:6379> config get requirepass  

  • 1) "requirepass"  

  • 2) "myRedis"  

  • 3.master配置了密码,slave如何配置

  • 若master配置了密码则slave也要配置相应的密码参数否则无法进行正常复制的。


  • slave中配置文件内找到如下行,移除注释,修改密码即可


  • [plain] view plain copy

  • #masterauth  mstpassword  






查看完整回答
反对 回复 2019-05-17
  • 2 回答
  • 0 关注
  • 952 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信