MQTT入门2 -- “Error: Invalid password hash for user nick.”和“Connection Refused: not authorised.”...
原文地址:https://www.cnblogs.com/NickQ/p/9277315.html
问题描述:
搭建好mosqitto环境后,利用无密码验证方式,成功通过测试。
但修改配置文件将匿名访问关闭,并设置密码文件
allow_anonymous false
password_file /home/nickxq/mqtt_passwd
密码文件内容:
参考:https://mosquitto.org/man/mosquitto-conf-5.html
[nickxq@centos6 ~]$ cat ./mqtt_passwd
nick:nickxq
开启服务器报错:
[nickxq@centos6 ~]$ mosquitto -c mosquitto.conf
1530947452: mosquitto version 1.4.15 (build date 2018-04-21 17:41:08+0800) starting
1530947452: Config loaded from mosquitto.conf.
1530947452: Error: Invalid password hash for user nick.
1530947452: Error opening password file "/home/nickxq/mqtt_passwd".
提示密码无效。
猜想可能是因为文件明文密码需要加密。
猜想依据:密码示例文件如此,示例文件内容:
[nick@XQLY ~]$ cat /etc/mosquitto/pwfile.example
roger:$6$clQ4Ocu312S0qWgl$Cv2wUxgEN73c6C6jlBkswqR4AkHsvDLWvtEXZZ8NpsBLgP1WAo/qA+WXcmEN/mjDNgdUwcxRAveqNMs2xUVQYA==
sub_client:$6$U+qg0/32F0g2Fh+n$fBPSkq/rfNyEQ/TkEjRgwGTTVBpvNhKSyGShovH9KHewsvJ731tD5Zx26IHhR5RYCICt0L9qBW0/KK31UkCliw==
pub_client:$6$vxQ89y+7WrsnL2yn$fSPMmEZn9TSrC8s/jaPmxJ9NijWpkP2e7bMJLz78JXR1vW2x8+T3FZ23byJA6xs5Mt+LeOybAHwcUv0OCl40rA==
于是通过linux中用户密码shadow文件,找到用户密码
nick:$6$.KqyKaCc$om0v0xipwvVJOubJjihzCGF7yII4CGZireXCGCj7WskvlDSDwv3qfDk.GWe2/IUO4tqn5XYFR8CpekZz7oLaG/:17718:0:99999:7:::
密文串意思参考:
http://blog.sina.com.cn/s/blog_4d1f40c00101cvd8.html
https://blog.csdn.net/jinyuhongye/article/details/7950961
得到nick用户,明文密码为nickxq的加密密文为:
$6$.KqyKaCc$om0v0xipwvVJOubJjihzCGF7yII4CGZireXCGCj7WskvlDSDwv3qfDk.GWe2/IUO4tqn5XYFR8CpekZz7oLaG/
将密文添加到 ./mqtt_passwd
[nickxq@centos6 ~]$ cat ./mqtt_passwd
nick:$6$.KqyKaCc$om0v0xipwvVJOubJjihzCGF7yII4CGZireXCGCj7WskvlDSDwv3qfDk.GWe2/IUO4tqn5XYFR8CpekZz7oLaG/
运行服务器监听程序
[nickxq@centos6 ~]$ mosquitto -c mosquitto.conf
1530948296: mosquitto version 1.4.15 (build date 2018-04-21 17:41:08+0800) starting
1530948296: Config loaded from mosquitto.conf.
1530948296: Opening ipv4 listen socket on port 1885.
1530948296: Opening ipv6 listen socket on port 1885.
服务器程序开始监听,正常。
mosquitto 密码文件中,密文确实需要加密
** 以为问题解决了么?! NO,没有 。不信? 继续看**
此时,建立订阅者和发布者
[nickxq@centos6 ~]$ mosquitto_sub -p 1885 -u nick -P nickxq -t "test"
Connection Refused: not authorised.
Connection Refused: not authorised.
Connection Refused: not authorised.
Connection Refused: not authorised.
^C
[nickxq@centos6 ~]$ mosquitto_pub -p 1885 -u nick -P nickxq -t test -m "Hello。"
Connection Refused: not authorised.
Error: The connection was refused.
[nickxq@centos6 ~]$
不论哪个客户端,都会提示错误 Refused: not authorised. 。
显然,这是密码不正确。可能的原因有很多,最容易想的就是加密方式,linux用户密码生成和mosquitto采用的方法不同。
那么,如何得到一个正确的密文串呢。
通过查看手册,知道了mosquitto_passwd程序
可以使用mosquitto_passwd程序,自动生成
但是,问题是 command not found
[nickxq@centos6 ~]$ mosquitto_passwd --help
-bash: mosquitto_passwd: command not found
这个问题原因我没找到,但是我重新下载编译了mosquitto-1.4.15,就有了mosquitto_passwd
[nickxq@centos6 ~]$ mosquitto
mosquitto mosquitto_passwd mosquitto_pub mosquitto_sub
[nickxq@centos6 ~]$ mosquitto_passwd --help
mosquitto_passwd is a tool for managing password files for mosquitto.Usage: mosquitto_passwd [-c | -D] passwordfile usernamemosquitto_passwd -b passwordfile username passwordmosquitto_passwd -U passwordfile-b : run in batch mode to allow passing passwords on the command line.-c : create a new password file. This will overwrite existing files.-D : delete the username rather than adding/updating its password.-U : update a plain text password file to use hashed passwords.See http://mosquitto.org/ for more information.
这里使用 -U 将已有的明文更改为密文
[nickxq@centos6 ~]$ vim ./mqtt_passwd
nick:nickxq
[nickxq@centos6 ~]$ mosquitto_passwd -U ./mqtt_passwd
[nickxq@centos6 ~]$ cat ./mqtt_passwd
nick:$6$U3Ln7cn3+tKv0UVG$IU+jS8lPN9iH9N49u7t/eseOOKdvt8cvFjIOXrBo3LPMhf7YidcFubugPGjKOXDkjriiZdRnszb83LNLheVmlw==
当然,也可以直接向文件中写入一个新的用户名和密码
[nickxq@centos6 ~]$ touch mqtt_passwd
[nickxq@centos6 ~]$ mosquitto_passwd -b mqtt_passwd nick nickxq
原文地址:https://www.cnblogs.com/NickQ/p/9277315.html
本帖完
转载于:https://www.cnblogs.com/NickQ/p/9277315.html
MQTT入门2 -- “Error: Invalid password hash for user nick.”和“Connection Refused: not authorised.”...相关推荐
- 成功解决(Socket error occurred: localhost/127.0.0.1:2181: Connection refused)连接zkServer被拒绝的问题
成功解决zookeeper启动后立即退出的问题.客户端连接zookeeper拒绝的问题(Socket error occurred: localhost/127.0.0.1:2181: Connect ...
- docker 错误:Error response from daemon: cannot stop container: connect: connection refused: unknown...
docker 错误:Error response from daemon: cannot stop container: 795e4102b2de: Cannot kill container 795 ...
- ERROR 1372 (HY000): Password hash should be a 41-digit hexadecimal number;
rpm 安装了 mysql 5.6 的版本 遇到的问题 1. 提示与5.1版本的有冲突. 解决方式, 是 rpm --force -ivh rpm包.rpm 进行强制安装 2. 启动 mysql 后, ...
- Java:Linux上java -jar xxx.jar命令执行jar包时出现Error: Invalid or corrupt jarfile xxx.jar解决方案...
背景: 从ftp上上传jar包到linux上,之后在linux上通过ftp命令下载jar包文件,开始执行Java-jar,一直提示错误:Error: Invalid or corrupt jarfil ...
- android mqtt详解_Android mqtt入门 Android studio(转)
Android mqtt入门 Android studio 2018年04月09日 14:02:30 hbw020 阅读数:1564 分享 mqtt简单使用介绍: 1.as创建工程 2.官网下载mqt ...
- 解决twine upload时HTTPError: 403 Client Error: Invalid or non-existent authentication information.
正在自学Ninad Sathaye - Learning Python Application Development (2016, Packt Publishing - ebooks Account ...
- OTS parsing error: invalid version tag woff和ttf文件被Filter拦截
从服务器下载的字体文件放在本地,执行无法展示iconfont,浏览器控制台报出 Failed to decode downloaded font: http://127.0.0.1:8080/mhr/ ...
- ruby环境sass编译中文出现Syntax error: Invalid GBK character错误解决方法
sass文件编译时候使用ruby环境,无论是界面化的koala工具还是命令行模式的都无法通过,真是令人烦恼. 容易出现中文注释时候无法编译通过,或者出现乱码,找了几天的解决方法终于解决了. 这个问题的 ...
- cuda error invalid argument
用pytorch训练时报的错 在loss.backward时报错 估计应该是loss出现了异常值. 网上其他答案: 问题: RuntimeError: CUDA error: invalid conf ...
- runtime error: invalid memory address or nil pointer dereference
runtime error: invalid memory address or nil pointer dereference 解决方法: tcallback((unsigned char*)pac ...
最新文章
- 【知识星球】总有些骨骼轻奇,姿态妖娆的模型结构设计,不知道你知不知道,反正我知道一些...
- linux Hadoop HDFS NameNode进程重启脚本(linux进程通用)
- ISA server的常见身份验证方式
- 在腾讯云云函数计算上部署.NET Core 3.1
- WEBAPI 增加身份验证 (OAUTH 2.0方式)
- Linux 命令之 eval -- 对参数执行两次解释
- 20211109:DC综合的一些简单概念理解记录
- go应用---Time.second
- 一种使用16QAM的OFDM系统MATLAB仿真
- 文献阅读【RNA-seq数据归一化】
- win 通过 Distro 安装 linux 子系统
- 计算机卡慢解决方法,电脑很卡怎么办,详细教您电脑很卡很慢应该怎么解决
- python matplotlib笔记:饼状图
- KVM 虚拟化 介绍
- 玩cf出现outofmemory_玩CF自动掉线出现out of memory怎么处理?
- 转义字符 thymeleaf中lt,le,eq,ne,ge,gt,not,mod表示的含义
- 42岁腾讯老员工失业,却处处碰壁
- 20X36 FCPX插件卡通人物角色场景解说转场图标MG动画元素包 Brightly V3
- JS获取图片(选择图片并显示)
- 社工工具安全测试-Seeker和ngrok
热门文章
- linux vi 表格,关于Linux vi命令 vi命令一览表
- ​社交产品盈利方式产品模式设计案例
- 重力加速度传感器的启示
- 《Unity Shader入门精要》自学笔记(六)第九章 更复杂的光照 —— 渲染路径
- [计算机视觉] 边缘检测Canny算法原理总结 以及 matlab代码实现
- 第9天Sqltie数据库
- 10计算机语言代表什么,win10是什么编程语言写的_win10史诗般的巨型编程项目
- win10便签常驻桌面_便签,草图,截屏草图,一个win10自带的小工具统统解决!...
- python中的search的group(0),group(1).........的方法
- ESP8266-Arduino编程实例-MAX44009环境光传感器驱动