2015-12-06 11 views
25

ho ottenuto l'errore di autenticazione noauth richiesto quando mi collego al server Redis tramite comando password: redis-cli e corro ping per controllare se Redis sta lavorando.Redis sollevano errore: noauth Autenticazione richiesta, ma non v'è alcuna impostazione

Ho trovato answer for NOAUTH Authentication required error che descrive che questo errore si verifica solo quando Redis è impostata su una password, ma ho selezionato il file di configurazione Redis allo etc/redis/redis.conf e non è stata impostata alcuna password.

Redis config

Qualcuno sa che se ci sono altre impostazioni che possono causare questo errore? Grazie per qualsiasi aiuto.

p/s: Sto utilizzando il framework web di Ruby on Rails, il database Redis è utilizzato per Sidekiq.

Modificato: la versione di Redis è 2.8.4. Il server è ospitato su AWS.

Attualmente, ho deciso di impostare una password per il server Redis in modo che non possa essere impostata la password quando è in esecuzione.

(Quando il server viene riavviato Redis, funzionerà normale. È possibile eseguire sudo service redis-server restart per riavviare il server Redis.)

+1

È possibile che questo non sia il file di configurazione utilizzato dal server. In alternativa, potrebbe essere che qualcuno si sia connesso al tuo server e impostato una password usando il comando 'CONFIG SET requirepass', nel qual caso un riavvio del tuo server Redis dovrebbe risolverlo. –

+0

@ItamarHaber Sono certo che si tratta di un file di configurazione che il mio server sta utilizzando. Sì, riavvio il server Redis e funziona di nuovo senza password, ma non so perché richiede una password in seguito, e non posso eseguire 'CONFIG get requirepass' per ottenere la password. – Thanh

+2

Probabilmente perché qualcuno si sta connettendo al tuo server e sta impostando requirepass. –

risposta

38

Abbiamo anche affrontato un problema simile. Sembra che qualcuno sia andato e scansionato AWS e connesso a tutti i redis pubblici e probabilmente ha eseguito "CONFIG SET REQUIREPASS ''", bloccando così l'istanza di redis in esecuzione. Una volta che si riavvia , la configurazione viene ripristinata alla normalità.

La cosa migliore sarebbe utilizzare la politica del gruppo di sicurezza AWS e la porta del blocco 6379 per il pubblico.

+0

Nel mio caso, il troll ha cancellato il database (eseguito FLUSHALL), quindi eseguito CONFIG SET REQUIREPASS '', due volte. Fortunatamente ho avuto dei backup, grazie per aver indicato l'esattezza che gli ha permesso di farlo e come risolverlo. –

+0

Sembra la spiegazione molto ragionevole, ha avuto lo stesso problema su AWS – DataGreed

+0

Penso di avere lo stesso problema, ma come hai riavviato redis? Quando provo "sudo /etc/init.d/redis_6379 restart", ottengo "Arresto ... (errore) Autenticazione NOAUTH richiesta." – Kohanz

0

Se sono state apportate modifiche nel file di configurazione quindi non dimenticate di riavviare Redis di servizio con sudo service redis-server restart comando.

Modifica: Se si sta eseguendo il servizio redis in modalità produzione, redis richiede l'esecuzione della password. Per questo è necessario impostare la password nel file di configurazione presente a /etc/redis.

È necessario impostare requirepass ******* in tale file nella sezione ########### SECURITY ############.

Quindi riavviare il server sudo service redis-server restart.

Successivamente aggiungere la password nel file di configurazione o inizializzatore in cui è stato impostato il nome host e la porta. Esempio:

$redis = Redis.new(:host => 'localhost', :port => 6379, :password => "*******")

+0

Non ho apportato alcuna modifica, il server Redis richiede una password quando è in esecuzione mentre la configurazione non è impostata la password. – Thanh

+0

Ho modificato la mia risposta. Si prega di controllare. –

3

Ho avuto lo stesso problema (in esecuzione su AWS) e ha scoperto il nostro porto Redis è stato esposto. Probabilmente hai avuto lo stesso. Qualcuno stava scherzando.

EDIT: La soluzione: reset your redis password e poi (ammesso che abbiate in esecuzione come servizio) riavviare il servizio providing the new password

+0

Sì, ho riavviato il server e funziona normalmente, ma poi bloccato di nuovo. Così ho deciso di impostare una password per questo in modo che non possa impostare nuovamente la nuova password. – Thanh

+0

Hai la tua porta redis (presumibilmente 6379) esposta al mondo? La chiusura è il primo passo nella soluzione. – haren

+0

Sì, forse il server non è protetto porta 6379 di redis. La mia soluzione è impostata una password per il server redis in modo che non possa essere ignorata la password. – Thanh

1

Ho lo stesso problema.successivamente sono impostato a requirepass per il server redis.
E aggiungo che la password in initializer/redis.rb

$redis = Redis.new(:password=>"****") 

Funziona bene

+0

si dovrebbe anche limitare la connessione alla porta Redis se il tuo server è installato su AWS. – Thanh

1

avuto lo stesso problema esatto in esecuzione Redis su un'istanza AWS. Vorrei riavviare redis-server senza alcun requisito di password (#requirepass ''), funzionerebbe bene per qualche ora, quindi lanciare "Autenticazione NOAUTH richiesta" e alla fine riavviare redis-server.

Controllato le impostazioni dei gruppi di sicurezza in AWS per l'istanza e la porta segata 6379 aperta al pubblico (0.0.0.0/0). Abbiamo limitato l'accesso alla porta al nostro unico server a cui è necessario accedere e da allora non si è più verificato il problema!

P.S. Questo è il mio primo contributo in assoluto a StackOverflow. Grazie per l'aiuto!

0

I Avere lo stesso problema, ho trovato è causato da qualcuno ha iniziato a redis da un altro redis.cnf configurazione del file, Quindi ho smesso di redis-server e quindi avviato redis-server specificare un file di configurazione.

redis-server /etc/redis.cnf 

Quindi tutto funziona correttamente.

Problemi correlati