身份验证失败(被远程节点拒绝),请检查Erlang cookie

时间:2017-12-19 19:25:46

标签: erlang rabbitmq

我按照官方文档中提到的方式安装了erlang和rabbitmq。但是,当我这样做时

C:\ Program Files \ RabbitMQ Server \ rabbitmq_server-3.7.0 \ sbin> rabbitmqctl add_user XXXXXX YYYYYYY

它给了我以下错误......

错误:无法对节点'rabbit @ C001741998'执行操作。请参阅下面的诊断信息和建议。

最常见的原因是:

  • 目标节点无法访问(例如,由于主机名解析,TCP连接或防火墙问题)
  • CLI工具无法通过服务器进行身份验证(例如,由于CLI工具的Erlang cookie与服务器不匹配)
  • 目标节点未运行

除了下面的诊断信息:

诊断

试图联系:[rabbit @ C001741998]

兔@ C001741998:

  • 连接到C001741998上的epmd(端口4369)

  • epmd报告节点'rabbit'使用端口25672进行节点间和CLI工具流量

  • TCP连接成功但Erlang分发失败

  • 身份验证失败(被远程节点拒绝),请检查Erlang cookie

当前节点详细信息:

  • 节点名称:rabbitmqcli49 @ C001741998

  • 有效用户的主目录:C:\ Users \ XYZ

  • Erlang cookie hash:QJlwBuAgrn8gN00mjqQYOw ==

我将erlang cookie从我的用户主文件夹复制到C:\ Windows文件夹。所以,他们都有相同的cookie。它还在不断地把错误扔给我。不确定应该如何解决。任何帮助?

6 个答案:

答案 0 :(得分:29)

文档说你应该以另一种方式复制......

  

如果使用Windows服务,则应将cookie从C:\ Windows \ system32 \ config \ systemprofile \ .erlang.cookie复制到运行命令如rabbitmqctl.bat的用户的预期位置。

请参阅http://www.rabbitmq.com/cli.html

答案 1 :(得分:17)

如果像我一样,你需要这些东西真正拼写出来:

  1. 在FileExplorer中导航到您的用户目录。 (在地址栏中粘贴%userprofile%。)
  2. 如果您已在其中有文件.erlang.cookie,请将其删除。如果没有,请转到下一步。
  3. 在第二个FileExplorer中,导航至C:\Windows\System32\config\systemprofile
  4. 找到文件.erlang.cookie并将其复制到您的用户目录。
  5. 现在您的rabbitmqctl应该能够进行身份验证。

答案 2 :(得分:5)

Robino的答案帮助我确定了这个问题。

我有两个不同的.erlang.cookie文件- 一位管理员users/adminusers/myprofile

中的另一个

我将C:\Windows\System32\config\systemprofile中的一个复制到了位置users/myprofileusers/admin上。

我也将相同的cookie文件复制到运行%Rabbit_Home%\sbin的Rabbit安装rabbitmqctl.bat中。

答案 3 :(得分:3)

自己解决了这个问题之后,通过在我的帐户下运行服务解决了问题。如果您仍然遇到问题并重新安装,请尝试此操作。

答案 4 :(得分:2)

我确实通过Chocolaty安装了RabbitMQ 3.8.5 Erlang 22.3,并在Windows 10计算机上遇到了同样的问题。 对我而言,替换.erlang.cookie文件的工作如上所述here

Cookie文件位置 在Windows上,cookie文件的位置取决于是否设置了HOMEDRIVE和HOMEPATH环境变量。

如果使用非管理帐户安装RabbitMQ,则不会将节点和CLI工具使用的共享机密文件放置在正确的位置,从而在使用Rabbitmqctl.bat和其他CLI工具时导致身份验证失败。

这些选项之一可用于缓解:

  • 使用管理用户重新安装RabbitMQ
  • 将文件.erlang.cookie手动从%SystemRoot%或%SystemRoot%\ system32 \ config \ systemprofile复制到%HOMEDRIVE %% HOMEPATH%。

答案 5 :(得分:1)

检查您安装的erlang版本。 rabbitmq v3.7.0与erlang的v20.1.x匹配。 supported version of Erlang