【问题标题】:How to set username/password mosquitto?如何设置用户名/密码蚊子?
【发布时间】:2015-09-18 08:16:15
【问题描述】:

我使用mosquitto_passwd 命令创建了密码文件。

mosquitto_passwd /etc/mosquitto/passwd admin

我在mosquitto.conf中添加了密码文件的路径:

password_file /etc/mosquitto/passwd

但是当我订阅或发布时不需要用户名/密码?

mosquitto_sub  -t '#' -d
Client mosqsub/19032-Dell sending CONNECT
Client mosqsub/19032-Dell received CONNACK
Client mosqsub/19032-Dell sending SUBSCRIBE (Mid: 1, Topic: #, QoS: 0)
Client mosqsub/19032-Dell received SUBACK
Subscribed (mid: 1): 0

我错过了什么?

【问题讨论】:

    标签: passwords mosquitto


    【解决方案1】:

    默认情况下,Mosquitto 仍然允许匿名连接,即没有提供用户名/密码的连接。 除了password_file这个入口,你还需要:

    allow_anonymous false
    

    【讨论】:

    • 如果对您有用,请不要忘记投票并接受答案。谢谢!
    • @datnq 差不多 2 年后,别忘了接受 :)
    【解决方案2】:

    修改/etc/mosquitto/mosquitto.conf中的“allow_anonymous false”后,没有密码的用户仍然可以发布和订阅

    【讨论】:

    • 您能解释一下为什么他们仍然可以连接以及我们可以做些什么来避免这种情况吗?我正在为这些设置而苦苦挣扎,并想知道为什么我仍然能够匿名连接。
    • @MarkusRudel 同样在这里,密码文件有加密密码,我已经修改 mosquitto.conf 设置 allow_anonymous 为 false 但仍然可以在没有密码的情况下发布/订阅。
    • @SunBee 我也遇到了同样的问题,在 mosquitto.conf 文件中,“allow_anonymous”被设置为“false”,并且“password_file”也被正确给出,尽管在应用程序端,如果凭据提供错误的经纪人拒绝连接,但用户名和密码保持空白,它能够与代理连接。问题在于 mosquitto.conf 文件中的“监听器”未设置。设置“listener ”后,它开始按预期工作。
    • @John 我在一个带有 Alpine 基础映像和最新版本 Mosquitto 的 docker 容器中执行此操作,并意识到设置与我预期的不同。我切换到 Mosquitto (3.0.8) 的早期版本,现在使用凭据进行身份验证按预期工作。感谢您分享您的见解。
    【解决方案3】:

    password_file 不能为空。或者不需要密码。

    【讨论】:

      猜你喜欢
      • 2018-10-04
      • 1970-01-01
      • 1970-01-01
      • 2013-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多