MQTT 非匿名登陆配置 | 学习笔记

简介: 快速学习 MQTT 非匿名登陆配置

开发者学堂课程【嵌入式之 RFID 开发与应用2020版:MQTT 非匿名登陆配置 】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:/learning/course/665/detail/11176


MQTT 非匿名登陆配置

内容介绍:

一、账户的认证操作

二、创建用户的方式

 

一、账户的认证操作

在上节课对 mosquitto 软件进行了安装并进行了简单的测试。但是之前所进行的测试没有办法去真实的部署,因为每个人都不希望自己的数据轻易的被别人访问。第一个是能够对数据的发布和访问者进行权限的认证,意思就是你是我的客户才可以进行访问,另外一个就是你是我的客户那也希望数据在传递的过程中不要以明文的方式传递应该是加密的。

所以第一个,一个账号的认证,首先要让 mosquitto 非匿名登陆,之前是任何人都可以去连接去登录去发布去订阅这种方式就是匿名的,想要非匿名首先要在服务器里面先让配置支持,如何支持先打开配置文件,要用 sudo 打开不然没有修改的权限,然后输入 vim /etc/mosquitto/mosquitto.conf 在后面添加 allow_anonymous false( true 表示允许匿名登录,false 表示不允许匿名登录)必须进行验证。结束之后必须指定一个登录用户的账号信息,账户信息创建完成之后会存放到 passwd.conf 配置文件中,首先要改成 password_file/etc/mosquitto/passwd.conf 路径,修改完成保存。

 

二、创建用户的方式

1、隐藏密码创建

然后要创建用户,有两种方法一种是隐藏密码创建,另一种是用明密码的方式创建。第一种是通过 mosquitto_passwd 里面有几种命令, mosquitto 是服务器的命令,mosquitto_pub 是发布,mosquitto_sub 是订阅,mosquitto_passwd 是创建账户。

image.png

输入 mosquitto_passwd -c/etc/mosquitto ,-c 指定账户信息的存放路径,名字可以自己修改与前面保持一致就可以。接下俩就是用户名,用户名设为 hg,输入 hg 的密码 111111,再输入一次。这时可以看到没有权限去写,没有权限的原因是没有加 sudo,输入 sudo 后重新连接再次输入密码。之后可以输入 etc/mosquitto/passwd.conf 去看,这时就相当于建立了 hg 账户。

image.png

2、用明密码的方式

然后可以再建立一个账户用另一种方式即明文的方式,首先参数要变,由 -c 变为 -b,hg 改为 zs 111111,这就是用户名和密码一起输入,再去查看这时多了 zs 的账户。

image.png

两个账户都有了之后,重新去运行服务器 mosquitto -c 去指定配置文件,配置文件已经加好,服务器可以进行正常的运行。再通过之前匿名登陆的方式则显示没有权限无法登陆,完成了几次握手,发送连接,应答,最后没有权限。

image.png

即出现了错误(Socket error on client<unknown>) 断开了,因此必须加上账户信息。账户信息的添加要输入  -u hg (用户名)-P(密码)111111。P 一定要大写不能写成小写。这时就连接上了,连接上之后再看发送消息,匿名发送消息并没有收到,这时将消息级别降低,不需要太复杂,但是没有权限,依然要用同样的方法即输入 -u hg -p111111.这样消息就可以发送出去。也就是说用 hg 的账户去订阅的,可以用 zs 的账户去发布,也就是说符合服务器的账户要求就是之前所讲的做一个服务器连接了很多终端,终端有发布者和订阅者,订阅都可以互相订阅互相发布,因为只认主题。

image.png

这就是非匿名登陆,下节课会去讲更加安全的加密通信。

相关实践学习
RocketMQ一站式入门使用
从源码编译、部署broker、部署namesrv,使用java客户端首发消息等一站式入门RocketMQ。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
17天前
|
消息中间件 物联网 Java
MQTT常见问题之微消息队列配置失败如何解决
MQTT(Message Queuing Telemetry Transport)是一个轻量级的、基于发布/订阅模式的消息协议,广泛用于物联网(IoT)中设备间的通信。以下是MQTT使用过程中可能遇到的一些常见问题及其答案的汇总:
|
17天前
|
消息中间件 数据可视化 大数据
【如何安装和配置RabbitMQ(转载)】
【如何安装和配置RabbitMQ(转载)】
33 2
|
7月前
|
消息中间件 存储 Shell
Docker部署RabbitMQ配置日志映射本地文件
Docker部署RabbitMQ配置日志映射本地文件
157 0
|
7月前
|
传感器 JSON 物联网
什么是MQTT遗嘱消息?如何配置和处理遗嘱消息?
什么是MQTT遗嘱消息?如何配置和处理遗嘱消息?
345 0
什么是MQTT遗嘱消息?如何配置和处理遗嘱消息?
|
9月前
|
消息中间件 Java Linux
rocketmq linux注册服务开机启动配置
rocketmq linux注册服务开机启动配置
284 1
|
10月前
|
物联网 Java Linux
Linux安装与配置Eclipse Paho库:实现MQTT通信
Eclipse Paho是一个开源的MQTT(Message Queuing Telemetry Transport)实现,提供了多种编程语言的客户端库,包括C、C++、Java、Python等。在Linux系统中,通过安装和配置Eclipse Paho库,我们可以方便地实现MQTT通信功能。本文将详细介绍在Linux系统中安装和配置Eclipse Paho库的步骤,以便于开发者在物联网项目中使用MQTT协议进行通信。
768 0
|
7月前
|
存储 传感器 物联网
如何在Docker中配置Mosquitto MQTT代理,以便在容器化环境中运行和管理MQTT通信
如何在Docker中配置Mosquitto MQTT代理,以便在容器化环境中运行和管理MQTT通信
370 0
如何在Docker中配置Mosquitto MQTT代理,以便在容器化环境中运行和管理MQTT通信
|
17天前
|
消息中间件 存储 Apache
MQ产品使用合集之RocketMQ如果配置所有的ip,有些namesrv挂了的话,消息就发送失败了,消费也是失败的如何解决
消息队列(MQ)是一种用于异步通信和解耦的应用程序间消息传递的服务,广泛应用于分布式系统中。针对不同的MQ产品,如阿里云的RocketMQ、RabbitMQ等,它们在实现上述场景时可能会有不同的特性和优势,比如RocketMQ强调高吞吐量、低延迟和高可用性,适合大规模分布式系统;而RabbitMQ则以其灵活的路由规则和丰富的协议支持受到青睐。下面是一些常见的消息队列MQ产品的使用场景合集,这些场景涵盖了多种行业和业务需求。
|
17天前
|
消息中间件 网络协议 Linux
用docker方式 安装rabbitmq 并配置MQTT
用docker方式 安装rabbitmq 并配置MQTT
24 0
|
17天前
|
消息中间件 RocketMQ
RocketMq消费者/生产者配置
RocketMq消费者/生产者配置

热门文章

最新文章

http://www.vxiaotou.com