Redisのパスワードを設定するにはどうすればよいですか?


82

ローカルマシンで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);
  • 最後の質問ですが、ライブサーバーでredisサーバーを停止しようとしています。次のコマンドを入力するたびに、同じエラーメッセージが表示され続けます

    redis-server stop

    [23925] 23 Sep 20:23:03#致命的なエラー、設定ファイルを開くことができません 'stop'

    通常、ローカルマシンで入力します

    /etc/init.d/redis-server stop

/etc/init.dにredis-serverというプロセスがないため、redisサーバーを停止しますが、ライブサーバーでは機能しません

回答:


119

パスワードを設定するには、redis.confファイルを編集し、この行を見つけます

# requirepass foobared

次に、コメントを解除して、foobaredをパスワードに変更します。設定ファイルのメモに記載されているように、32文字程度のかなり長いものを選択するようにしてください。外部ユーザーは、1秒間に15万以上のパスワードを簡単に推測できます。

predisを使用して新しいパスワードで認証するには、表示されている構文が正しいです。接続パラメータの1つとしてパスワードを追加するだけです。

redisをシャットダウンするには...設定ファイルをチェックインしてください。pidfileおそらく次のようになります。

pidfile /var/run/redis.pid

コマンドラインから、次のコマンドを実行します。

cat /var/run/redis.pid

これにより、実行中のサーバーのプロセスIDが得られ、そのpidを使用してプロセスを強制終了します。

kill 3832

更新

また、追加したかったの/etc/init.d/redis-server stopですが、ライブサーバーでの作業に慣れているようにすることもできます。/etc/init.d/内のこれらのファイルはすべて、単なるシェルスクリプトであり、ローカルサーバーからredis-serverスクリプトを削除し、同じ場所にあるライブサーバーにコピーして、viなどで何が行われるかを確認します。使用したい場合は、いくつかのパスなどを変更する必要があるかもしれませんが、それはかなり単純なはずです。


1
これはWindowsでは機能しないようです。両方のconfファイルを試しました。多くの組み合わせでRedisの再起動を試しました。動作したのは、「redis-cli config set requirepasssomepass」だけでした。さらに、サーバーが再起動/シャットダウンされるたびに、パスワードが失われていました。だから私は、それは窓の場合だと思います。
ジェフズ2017年

1
選択したインストールプロセスに応じて、Redis構成ファイルを「vi / etc / redis / redis.conf」または「vi / etc / redis / 6379.conf」(例)として使用できます。ここで、「6379」はポート!
Eduardo Lucio

パスワードの最大長はありますか?
AndreasKralj

Redisのサーバーが稼働している場合も、それはスタート時に上部にPIDをプリントアウト...それは言うべきでRedisのバージョン= XXXビット= 64、コミット= XXXXXX、修正= 0、PID = XXXX
dave4jr

Redisが良くなり、マシンが速くなりました。Redis 6の設定ファイルには、「Redisは非常に高速であるため、外部ユーザーは最新のボックスに対して1秒あたり最大100万のパスワードを試すことができます」と記載されています。150Kでした:-)私は個人的にこのようなものを使っopenssl rand 50 | openssl base64 -Aて長いパスワードを生成していました。ただし、ACLを使用する方がよいかもしれません。
ラシェ

64

クライアントで次のコマンドを使用することもできます

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

上記のコマンドはサーバーパスワードp@ss$12E45として設定されredisます。


1
追加するだけです:tutorialspoint.com/redis/redis_security.htm説明したように、redis-cli経由でログインするには、最初にを実行してredisシェルに入りますredis-cli.exe。次に、と入力しAUTH <password>ます。
2015年

6
そして、無効化パスワード認証に、単に使用config set requirepass ""
アルン

3
また、redisを再起動すると、古いものにリセットされます。したがって、confファイルも追加します。
theGamblerRises 2016年

Config set requirepass "myPassword"このコマンドは機能しません。このコマンドを実行すると、エラーなしで実行されます。次に、Redisインスタンスを再起動しました。ただし、パスワードを証明しなくても、CLIからRedisインスタンスにpingを実行できます。後でredis.confでrequirepass属性を確認したところ、デフォルトの状態であることがわかりました。つまり、config set requirepassコマンドがconfigでrequirepassの値を設定できなかったため、機能しませんでした。それが機能しない理由/推測/理由はありますか?
Ashish Shukla

49

例:

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

一つはRedisの-PYを使用している場合、関連するコマンドがある:redis.Redis.config_set('requirepass', "mycoolpassword")
jamescampbell

Config set requirepass "myPassword"このコマンドは機能しません。このコマンドを実行すると、エラーなしで実行されます。次に、Redisインスタンスを再起動しました。ただし、パスワードを証明しなくても、CLIからRedisインスタンスにpingを実行できます。後でredis.confでrequirepass属性を確認したところ、デフォルトの状態であることがわかりました。つまり、config set requirepassコマンドがconfigでrequirepassの値を設定できなかったため、機能しませんでした。それが機能しない理由/推測/理由はありますか?
Ashish Shukla

20
sudo nano /etc/redis/redis.conf 

行を見つけてコメントを解除し# requirepass foobared、サーバーを再起動します

今あなたのパスワードは foobared


17

redis-cliの使用:

root@server:~# redis-cli 
127.0.0.1:6379> CONFIG SET requirepass secret_password
OK

これにより、パスワードが一時的に設定されます(redisまたはサーバーの再起動まで)

テストパスワード:

root@server:~# redis-cli 
127.0.0.1:6379> AUTH secret_password
OK

7

redis構成ファイルを開く

sudo nano /etc/redis/redis.conf 

パスフレーズを設定する

交換

# requirepass foobared

requirepass YOURPASSPHRASE

redisを再起動します

redis-server restart

4

そのためには、redis構成ファイルを更新する必要があります。デフォルトでは、redisのパスワードはありません。

01)redis構成ファイルを開く

sudo vi /etc/redis/redis.conf

SECURITYセクションでrequirepassフィールドを見つけ、そのフィールドのコメントを解除します。次に「foobared」の代わりにパスワードを設定します。

# requirepass foobared

それは、

requirepass YOUR_PASSWORD

次に、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

`


3

ステップ1.以下のコマンド/etc/init.d/redis-serverstopを使用してredisサーバーを停止しますステップ2.enterコマンド:sudo nano /etc/redis/redis.conf

ステップ3.#requirepass foobared wordを見つけて#削除し、foobaredをあなたのパスワードに変更します

例 requirepass root


2

パスワードを設定するために構成ファイルに正確に何を追加する必要があるのか​​わかりませんでした。

構成ファイルはに配置する必要があり/etc/redis/redis.conf、パスワードはREPLICATIONセクションとLIMITSセクションの間にあるSECURITYセクションに設定できます。パスワードの設定は、requirepassディレクティブを使用して行われます。詳細については、AUTHコマンドの説明を参照してください。


0

redisパスワードを設定する方法は?

手順1.以下のコマンド/etc/init.d/redis-serverstopを使用してredisサーバーを停止します

ステップ2.コマンドを入力してください:sudo nano /etc/redis/redis.conf

ステップ3.#requirepass foobared wordを見つけて#削除し、foobaredをあなたのパスワードに変更します

例 requirepass root

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.