redis:为redis设置密码

Don*_*gon 56 php redis

我在我的本地机器上使用redis所以我真的不需要设置密码来连接到我的php客户端服务器(我使用predis作为客户端).但是,我正在将我的应用程序移动到实时服务器,因此我想设置一个密码来连接到我的redis服务器.

我有几个问题:

  • 我在互联网上检查了如何设置密码,看起来我需要在redis.conf中添加密码.我无法找到我应该在配置文件中添加的内容来设置密码.

  • 同样在predis中我应该如何添加密码.我正在使用以下参数数组连接到redis服务器

    $ my_server = array('host'=>'127.0.0.1','port'=> 6379,'database'=> 1);

我应该这样添加密码吗?

> $my_server = array('host'     => '127.0.0.1','port'     =>
> 6379,'database' => 1,'password'=>password);
Run Code Online (Sandbox Code Playgroud)
  • 最后一个问题,我正试图在实时服务器上停止我的redis-server.每次我输入以下命令时,我都会收到相同的错误消息

    redis-server停止

    [23925] 9月23日20:23:03#致命错误,无法打开配置文件'停止'

    通常在我进入的本地机器上

    /etc/init.d/redis-server停止

停止redis服务器,但它不能在我的实时服务器上工作,因为我的/etc/init.d中没有名为redis-server的进程

pro*_*php 87

要设置密码,请编辑redis.conf文件,找到此行

# requirepass foobared
Run Code Online (Sandbox Code Playgroud)

然后取消注释并更改为您的密码.确保你选择了很长的东西,32个字符左右可能会很好,外面的用户很容易每秒猜测超过150k的密码,如配置文件中提到的那样.

要使用predis使用新密码进行身份验证,您显示的语法是正确的.只需添加密码作为连接参数之一.

要关闭redis ...请检查配置文件中的pidfile设置,它可能是

pidfile /var/run/redis.pid
Run Code Online (Sandbox Code Playgroud)

从命令行运行:

cat /var/run/redis.pid
Run Code Online (Sandbox Code Playgroud)

这将为您提供正在运行的服务器的进程ID,然后使用该pid终止进程:

kill 3832
Run Code Online (Sandbox Code Playgroud)

更新

我还想补充一点,你也可以让/etc/init.d/redis-server stop你习惯在你的实时服务器上工作./etc/init.d/中的所有文件都只是shell脚本,将redis-server脚本从本地服务器上取下,然后将其复制到同一位置的实时服务器,然后查看它对vi或其他任何内容的作用你想使用,你可能需要修改一些路径等,但它应该很简单.

  • 这似乎不适用于 Windows。我尝试了两个 conf 文件。我尝试了多种组合的 Redis 重启。唯一有效的是:“redis-cli config set requirepass somepass”。此外,每次服务器重新启动/关闭时,都会丢失密码。所以我想,这就是窗户。 (2认同)

Suh*_*wad 46

您也可以在客户端上使用以下命令

cmd :: config set requirepass p@ss$12E45

上面的命令将设置p@ss$12E45redis服务器密码.

  • 要禁用密码验证,只需使用`config set requirepass""` (6认同)
  • 补充一点:如 http://www.tutorialspoint.com/redis/redis_security.htm 所述,通过 redis-cli 登录首先通过运行 redis-cli.exe 进入 redis shell。然后输入“AUTH <密码>”。 (2认同)
  • 如果重新启动redis,它将重置为旧.所以,也要添加conf文件. (2认同)

Fla*_*oia 25

例:

redis 127.0.0.1:6379> AUTH PASSWORD
(error) ERR Client sent AUTH, but no password is set
redis 127.0.0.1:6379> CONFIG SET requirepass "mypass"
OK
redis 127.0.0.1:6379> AUTH mypass
Ok
Run Code Online (Sandbox Code Playgroud)


Sau*_*tel 16

sudo nano /etc/redis/redis.conf 
Run Code Online (Sandbox Code Playgroud)

找到并取消注释行# requirepass foobared,然后重启服务器

现在你的密码是 foobared


小智 11

使用redis-cli:

root@server:~# redis-cli 
127.0.0.1:6379> CONFIG SET requirepass secret_password
OK
Run Code Online (Sandbox Code Playgroud)

这将暂时设置密码(直到redis或服务器重启)

测试密码:

root@server:~# redis-cli 
127.0.0.1:6379> AUTH secret_password
OK
Run Code Online (Sandbox Code Playgroud)


And*_* F. 9

打开redis配置文件

sudo nano /etc/redis/redis.conf 
Run Code Online (Sandbox Code Playgroud)

设置密码

代替

# requirepass foobared
Run Code Online (Sandbox Code Playgroud)

requirepass YOURPASSPHRASE
Run Code Online (Sandbox Code Playgroud)

重启redis

redis-server restart
Run Code Online (Sandbox Code Playgroud)


小智 9

  1. 使用以下命令停止 Redis 服务器

    /etc/init.d/redis-server stop
    
    Run Code Online (Sandbox Code Playgroud)
  2. 输入命令:sudo nano /etc/redis/redis.conf

  3. 找到 requirepass foobared 单词并删除 # 并将 foobared 更改为您的密码

前任。需要root权限


V-Q*_*YEN 9

对于那些谁使用docker-compose,它真的很容易不喜欢任何配置文件设置密码redis.conf。以下是您通常使用官方 Redis 映像的方式:

redis:
    image: 'redis:4-alpine'
    ports:
      - '6379:6379'
Run Code Online (Sandbox Code Playgroud)

以下是设置自定义密码所需的全部更改:

  redis:
    image: 'redis:4-alpine'
    command: redis-server --requirepass yourpassword
    ports:
      - '6379:6379'
Run Code Online (Sandbox Code Playgroud)

一切都将正常启动,您的 Redis 服务器将受到密码保护。

有关详细信息,此博客文章似乎支持该想法。


rug*_*312 8

在 REDIS 6 之前的版本中,保护 REDIS 的唯一方法是打开您的redis.conf,取消注释该# requirepass行,然后添加密码。然而,这样做的缺点是这是所有连接共享的全局密码。

requirepass iampwd
Run Code Online (Sandbox Code Playgroud)

除非您需要向后兼容,否则您应该迁移到 REDIS 6,并使用 ACL 创建具有最低权限的用户

acl setuser dummyuser on >dummypwd allcommands allkeys 
Run Code Online (Sandbox Code Playgroud)

https://redis.io/topics/acl


小智 6

对于安装了 HomeBrew/Brew (redis-cli) 的 Mac:

redis-cli
AUTH oldpassword
CONFIG SET requirepass "newpassword"
CONFIG REWRITE
Run Code Online (Sandbox Code Playgroud)

重新开始:

brew services stop redis
//relogin
Run Code Online (Sandbox Code Playgroud)


小智 5

为此,您需要更新redis 配置文件。默认情况下,redis 没有任何密码。

01) 打开redis配置文件

sudo vi /etc/redis/redis.conf
Run Code Online (Sandbox Code Playgroud)

SECURITY部分下找到requirepass字段并取消对该字段的注释。然后设置您的密码而不是“foobared”

# requirepass foobared
Run Code Online (Sandbox Code Playgroud)

应该是这样的

requirepass YOUR_PASSWORD
Run Code Online (Sandbox Code Playgroud)

然后重启redis,启动redis-cli。

如果你需要检查你是否设置了正确的密码,你可以在 redis-cli 中运行下面的命令。

sithara@sithara-X555UJ ~ $ redis-cli
127.0.0.1:6379> set key1 18
(error) NOAUTH Authentication required.
127.0.0.1:6379> auth admin
OK
127.0.0.1:6379> get key1
(nil)
127.0.0.1:6379> exit


sithara@sithara-X555UJ ~ $ redis-cli
127.0.0.1:6379> set key1 18
(error) NOAUTH Authentication required.
127.0.0.1:6379> auth admin
OK
127.0.0.1:6379> set key2 check
OK
127.0.0.1:6379> get key2
"check"
127.0.0.1:6379> get key1
(nil)
127.0.0.1:6379> set key1 20
OK
127.0.0.1:6379> get key1
"20"
127.0.0.1:6379> exit
Run Code Online (Sandbox Code Playgroud)

`