SSH的魅力:为何它成为远程访问的首选

🐇明明跟你说过:个人主页

🏅个人专栏:《Linux :从菜鸟到飞鸟的逆袭》🏅

🔖行路有良友,便是天堂🔖

目录

一、引言 

1、SSH简介

2、SSH的历史与发展

3、SSH的主要用途 

二、SSH技术基础

1、SSH协议概述

2、SSH协议的版本

3、SSH的工作原理

  ​编辑  三、SSH的安全特性

1、对称加密与非对称加密 

2、SSH使用的加密算法

四、SSH的高级应用

1、SSH隧道的应用场景

2、SSH与Git的集成 

3、SSH在DevOps中的应用


一、引言 

1、SSH简介

SSH(Secure Shell)是一种安全协议,用于在不安全的网络中执行安全的数据通信。它最初是由IETF(Internet Engineering Task Force,互联网工程任务组)的网络工作小组(Network Working Group)所制定,用于替代之前不安全的网络协议,如Telnet、Rlogin和Rsh。

SSH协议族由一系列协议组成,包括传输层协议(SSH-TRANS)、用户认证协议(SSH-USERAUTH)、连接协议(SSH-CONN)和会话协议(SSH-SESSION)等。这些协议在传输数据时提供了机密性(通过加密)和认证性(通过消息认证码和公钥技术)。

SSH的主要特点包括:

  1. 安全性:SSH通过加密和认证机制确保了数据传输的安全性,防止了数据在传输过程中被窃取或篡改。
  2. 远程登录:SSH提供了一种安全的远程登录方式,允许用户通过SSH客户端安全地登录到远程服务器,并执行命令或传输文件。
  3. 文件传输:SSH协议族中的SCP(Secure Copy)和SFTP(SSH File Transfer Protocol)提供了安全的文件传输功能,用于在本地和远程主机之间传输文件。
  4. 端口转发:SSH支持端口转发功能,可以将一个端口的流量转发到另一个端口,或者将本地端口的流量转发到远程主机上的某个端口。这有助于绕过网络防火墙或进行其他网络配置。
  5. 公钥认证:SSH支持基于公钥的认证方式,允许用户使用公钥和私钥对进行身份认证。这种认证方式比传统的密码认证更安全,因为私钥通常存储在本地,不易被窃取。
  6. 命令行界面:SSH客户端通常提供命令行界面,用户可以在命令行中输入命令并查看输出。这使得SSH成为一种非常灵活和强大的远程管理工具。

   

2、SSH的历史与发展

SSH(Secure Shell)的历史与发展可以追溯到1995年,当时芬兰赫尔辛基大学的研究员Tatu Ylönen为了解决早期远程登录协议(如Telnet、Rlogin和Rsh)的安全性问题,提出了SSH协议的概念。

SSH的初始版本,即SSH1.x,由Ylönen于1995年发布。这个版本通过CRC-32避免数据被篡改,并逐渐成为私有软件。SSH1.x的目标是替代那些不提供强认证和机密性保证的远程登录协议。

然而,随着技术的发展和安全需求的提升,SSH1.x逐渐被认为存在安全漏洞和局限性。因此,IETF(Internet Engineering Task Force,互联网工程任务组)成立了一个工作小组来制定新的SSH标准,即SSH2。

SSH2标准于2006年被采纳为正式标准,它采用了更强大的加密算法和协议机制,提供了更高的安全性和可靠性。SSH2在SSH1的基础上进行了大量的改进和扩展,包括支持多种加密算法、公钥认证、密钥交换等。

在SSH2标准发布后,OpenSSH成为了最流行的SSH实现之一。OpenSSH是一个开源项目,它遵循SSH2标准,并提供了丰富的功能和可移植性。OpenSSH可以在多种操作系统上运行,并且已经成为许多Linux发行版的默认SSH实现。

随着云计算和大数据技术的发展,SSH的安全性和便利性得到了更广泛的应用。SSH不仅用于远程登录和文件传输,还广泛用于自动化运维、云计算管理、安全审计等领域。

  

3、SSH的主要用途 

1. 安全的远程登录:

  • SSH允许用户安全地登录到远程计算机并执行命令。相比传统的Telnet和Rsh等远程登录协议,SSH通过加密传输的数据,保护用户凭证(如用户名和密码)和数据传输过程中的安全性。这使得SSH成为远程管理服务器、网络设备、云实例等的首选协议。

2. 安全的文件传输:

  • SSH提供了两种安全的文件传输方式:SCP(Secure Copy)和SFTP(SSH File Transfer Protocol)。SCP允许用户通过SSH连接在本地和远程主机之间复制文件,而SFTP则提供了一个类似于FTP的文件传输协议,但使用SSH进行加密和认证。这些工具可以确保文件在传输过程中不被窃取或篡改。

3. 端口转发:

  • SSH支持端口转发功能,允许用户将一个端口的流量转发到另一个端口,或者将本地端口的流量转发到远程主机上的某个端口。这可以用于绕过网络防火墙限制、访问内部网络资源或进行其他网络配置。SSH的端口转发功能可以分为本地端口转发、远程端口转发和动态端口转发。

4. 隧道/VPN(虚拟私人网络):

  • 通过SSH,用户可以创建一个安全的隧道或VPN,以加密和路由网络流量。这可以用于保护网络流量免受中间人攻击、穿越受限的网络环境或提供安全的远程访问。SSH隧道可以设置为动态隧道(如SOCKS代理)或静态隧道(如SSH隧道端口转发)。

5. 自动化运维:

  • SSH是自动化运维的重要工具之一。通过使用SSH,运维人员可以编写脚本来自动执行远程命令、部署软件、配置网络设备等。这大大提高了运维效率,并减少了人为错误的可能性。

6. 安全审计和监控:

  • SSH可以配置为记录用户活动、连接尝试和命令执行等详细信息。这些日志可以用于安全审计、入侵检测和故障排查。此外,SSH还可以与其他安全工具(如SIEM系统)集成,以提供更全面的安全监控和响应能力。

7. 多因素认证:

  • SSH支持多因素认证(MFA),通过结合不同的认证方法(如密码、公钥认证、指纹等)来提高访问的安全性。这可以确保只有经过授权的用户才能访问远程系统,并降低未经授权的访问风险。

  

二、SSH技术基础

1、SSH协议概述

SSH(Secure Shell)是一种用于在不安全网络中安全地进行远程登录和执行命令的协议。它通过加密通信和身份认证来保护通信的安全性,并提供了远程登录、文件传输、远程执行命令、隧道和端口转发等功能。

SSH 协议由以下几个组成部分构成:

  1. 传输层协议(SSH Transport Layer Protocol):负责建立安全通道,保护通信过程中的数据传输安全。它使用加密算法和密钥协商协议来加密和认证通信数据,防止数据在传输过程中被窃听、篡改和伪造。
  2. 用户认证协议(SSH User Authentication Protocol):负责对客户端进行身份验证,确保只有经过授权的用户才能访问服务器。它支持多种身份认证方式,如密码、公钥、证书等,用户可以根据自己的需求和安全策略选择合适的身份认证方式。
  3. 连接协议(SSH Connection Protocol):负责在安全通道上建立连接,实现客户端和服务器之间的命令执行、文件传输和端口转发等功能。它提供了一系列命令和功能,使用户可以在远程服务器上执行各种操作,如登录、执行命令、传输文件等。

SSH 协议的主要特点包括:

  • 加密通信:使用加密算法对通信数据进行加密,保护数据在传输过程中的安全性。
  • 身份认证:支持多种身份认证方式,确保只有经过授权的用户才能访问服务器。
  • 会话管理:支持会话管理和多路复用,可以在同一个连接上执行多个会话和命令。
  • 端口转发:支持端口转发和隧道技术,实现安全的网络访问和数据传输。
  • 可靠性和稳定性:提供稳定可靠的远程访问和管理功能,适用于各种网络环境和操作系统平台。

   

2、SSH协议的版本

SSH 协议有两个主要版本:SSH-1 和 SSH-2。

SSH-1:

  • SSH-1 是最早的 SSH 版本,于 1995 年由 Tatu Ylönen 开发。
  • 它使用了较弱的加密算法和认证机制,存在安全漏洞和缺陷,如容易受到中间人攻击等。
  • SSH-1 使用了 RSA 算法进行密钥交换和身份认证,但密钥交换过程中没有进行完全的验证,容易受到中间人攻击。
  • SSH-1 的安全性受到了一些质疑,因此现在已经较少使用。

SSH-2:

  • SSH-2 是对 SSH-1 的改进和扩展,于 2006 年由 IETF(Internet Engineering Task Force)发布。
  • SSH-2 引入了更强大的加密算法和认证机制,提供了更安全、更可靠的远程登录和通信功能。
  • 它支持多种加密算法和密钥交换协议,如 RSA、DSA、ECDSA、Diffie-Hellman 等,提供了更灵活和可靠的安全机制。
  • SSH-2 在安全性、性能和功能方面都有较大的改进,成为了当前主流的 SSH 协议标准,被广泛应用于各种操作系统和平台中。

SSH-2 是目前主流的 SSH 协议版本,提供了更强大、更安全、更可靠的远程登录和管理功能,是用户进行安全远程通信的首选协议。

  

3、SSH的工作原理

SSH(Secure Shell)的工作原理基于加密通信和身份认证,主要分为以下几个步骤:

1. 建立连接:

  • 客户端向服务器发起连接请求,请求建立 SSH 连接。
  • 服务器响应连接请求,协商连接参数和加密算法。

2. 密钥交换:

  • 客户端和服务器通过 Diffie-Hellman 密钥交换协议协商会话密钥。
  • 客户端和服务器生成各自的密钥对,其中包括公钥和私钥。

3. 身份认证:

  • 客户端向服务器发送身份认证请求,提供用户身份信息。
  • 服务器验证客户端提供的身份信息,确认客户端的身份。

4. 会话加密:

  • 客户端和服务器使用协商好的会话密钥对通信数据进行加密和解密。
  • 所有的通信数据都经过加密处理,保护数据在传输过程中的安全性。

5. 数据传输:

  • 客户端和服务器之间通过安全通道进行数据传输,包括远程登录、执行命令、传输文件等操作。
  • 所有的通信数据都经过加密处理,防止数据在传输过程中被窃听、篡改和伪造。

6. 断开连接:

  • 客户端或服务器主动发起断开连接请求,终止 SSH 会话。
  • 断开连接后,会话密钥失效,通信数据无法解密,保护数据的安全性。

    三、SSH的安全特性

1、对称加密与非对称加密 

对称加密和非对称加密是两种常见的加密算法,它们在加密和解密过程中的使用方式有所不同:

对称加密(Symmetric Encryption):

  • 对称加密使用同一个密钥(称为对称密钥)进行加密和解密。
  • 加密和解密过程中使用相同的密钥,因此称为对称加密。
  • 对称加密算法通常具有较高的加密速度和效率。
  • 常见的对称加密算法有 DES(Data Encryption Standard)、AES(Advanced Encryption Standard)等。

非对称加密(Asymmetric Encryption):

  • 非对称加密使用一对密钥(称为公钥和私钥)进行加密和解密。
  • 公钥用于加密数据,私钥用于解密数据;或者私钥用于加密数据,公钥用于解密数据。
  • 非对称加密算法的加密和解密密钥是不同的,因此称为非对称加密。
  • 非对称加密算法通常具有较低的加密速度和效率,但提供了更高的安全性。
  • 常见的非对称加密算法有 RSA(Rivest-Shamir-Adleman)、DSA(Digital Signature Algorithm)、ECC(Elliptic Curve Cryptography)等。

对称加密和非对称加密各有其优缺点,可以根据实际需求和安全性要求选择合适的加密算法。通常情况下,对称加密用于加密大量数据或对称密钥的安全传输,而非对称加密用于安全的身份认证和密钥交换等场景。

  

2、SSH使用的加密算法

SSH 协议可以使用多种加密算法来保护通信数据的安全性,包括对称加密算法、非对称加密算法和哈希算法等。常见的 SSH 加密算法包括:

对称加密算法:

  • AES(Advanced Encryption Standard):AES 是一种高级加密标准,被广泛用于对称加密中,提供了高效、安全的加密和解密功能。在 SSH 中,AES 通常用于对会话数据进行加密和解密。

非对称加密算法:

  • RSA(Rivest-Shamir-Adleman):RSA 是一种常见的非对称加密算法,用于身份认证、密钥交换和数字签名等场景。在 SSH 中,RSA 通常用于密钥交换和身份认证,客户端和服务器可以使用 RSA 密钥对进行安全通信。
  • ECDSA(Elliptic Curve Digital Signature Algorithm):ECDSA 是一种基于椭圆曲线的数字签名算法,也常用于非对称加密和身份认证。在 SSH 中,ECDSA 通常用于生成和验证数字签名,确保通信数据的完整性和真实性。

哈希算法:

  • SHA(Secure Hash Algorithm):SHA 是一组安全散列算法,常用于生成消息摘要和验证数据完整性。在 SSH 中,SHA 通常用于生成消息认证码(MAC),确保通信数据的完整性和可靠性。

四、SSH的高级应用

1、SSH隧道的应用场景

SSH 隧道(SSH Tunnel)是一种通过 SSH 协议建立的加密通道,用于在不安全的网络环境中安全地传输数据。SSH 隧道的应用场景包括但不限于以下几个方面:

1. 安全访问内部网络资源:

  • 通过 SSH 隧道可以安全地访问内部网络资源,如数据库、文件共享、Web 服务等。
  • 用户可以通过 SSH 隧道在远程设备上访问内部网络资源,而无需直接暴露内部网络给公共网络。

2. 加密远程桌面访问:

  • 使用 SSH 隧道可以加密远程桌面(RDP、VNC)的访问流量,保护远程桌面会话中的数据安全性。
  • 用户可以通过 SSH 隧道远程访问桌面应用程序,而无需担心数据在传输过程中被窃听或篡改。

3. 绕过网络屏蔽和防火墙限制:

  • 在网络屏蔽或防火墙限制的网络环境中,可以使用 SSH 隧道绕过限制,访问被屏蔽的服务或网站。
  • SSH 隧道可以将网络流量通过 SSH 加密通道传输,使得网络流量看起来像是 SSH 通信,从而避免被检测和屏蔽。

4. 安全传输文件:

  • 通过 SSH 隧道可以安全地传输文件,保护文件在传输过程中的机密性和完整性。
  • 用户可以使用 SCP(Secure Copy)或 SFTP(SSH File Transfer Protocol)等工具通过 SSH 隧道传输文件,而无需担心文件泄露或被篡改。

5. 建立安全的代理服务:

  • 使用 SSH 隧道可以建立安全的代理服务,通过代理服务器访问互联网资源,保护用户的隐私和数据安全。
  • 用户可以在本地主机上建立 SSH 隧道代理,然后通过代理服务器访问互联网,实现安全的网络连接和数据传输。

   

2、SSH与Git的集成 

SSH 与 Git 的集成是一种常见的方式,用于在 Git 版本控制系统中进行安全的身份认证和数据传输。下面是 SSH 与 Git 集成的基本步骤:

1. 生成 SSH 密钥对:

  • 首先,在本地计算机上生成 SSH 密钥对,包括公钥和私钥。
  • 可以使用 ssh-keygen 命令生成 SSH 密钥对,并指定保存密钥对的路径和文件名。

2. 将公钥添加到 Git 服务器:

  • 将生成的 SSH 公钥添加到 Git 服务器的用户账户中,用于身份认证。
  • 在 Git 服务器上,一般有一个 SSH 公钥管理页面或配置文件,可以将用户的公钥添加到其中。

3. 配置 Git 客户端:

  • 配置 Git 客户端,使其使用 SSH 协议进行通信和身份认证。
  • 可以使用 git config 命令设置 Git 客户端的 SSH 相关配置,如设置 SSH 私钥路径、SSH 用户名等。

4. 使用 SSH 访问 Git 仓库:

  • 使用 SSH 协议访问 Git 仓库,通过 SSH 密钥对进行安全的身份认证。
  • 在执行 Git 操作时,如 clone、push、pull 等,Git 客户端会使用 SSH 密钥对进行身份认证,确保数据传输的安全性和可靠性。

通过以上步骤,可以将 SSH 与 Git 集成起来,实现安全的身份认证和数据传输,保护 Git 仓库中的代码和文件的安全性和完整性。SSH 提供了一种安全的通信机制,用于保护 Git 客户端和服务器之间的通信,确保数据在传输过程中不被窃听、篡改和伪造。

  

3、SSH在DevOps中的应用

1. 远程服务器管理:

  • DevOps 团队经常需要管理多台远程服务器,包括配置管理、软件部署、监控和故障排查等任务。
  • SSH 提供了安全、可靠的远程登录方式,使得 DevOps 工程师可以通过 SSH 远程登录到服务器进行管理操作。

2. 自动化部署:

  • DevOps 团队通常使用自动化工具(如 Ansible、Chef、Puppet 等)进行软件部署和配置管理。
  • 这些自动化工具通常会使用 SSH 协议与目标服务器进行通信,执行部署脚本和配置文件,实现自动化部署和配置管理。

3. 版本控制系统:

  • Git 是 DevOps 团队常用的版本控制系统,用于管理和协作开发项目代码。
  • Git 使用 SSH 协议进行安全的身份认证和数据传输,保护代码在传输过程中的安全性和完整性。

4. 持续集成与持续交付:

  • DevOps 团队通常会构建持续集成和持续交付(CI/CD)流水线,实现自动化的软件构建、测试和部署。
  • CI/CD 工具(如 Jenkins、GitLab CI、Travis CI 等)通常会使用 SSH 协议与目标服务器进行通信,执行部署任务和触发自动化流程。

5. 容器编排与管理:

  • 容器编排平台(如 Kubernetes、Docker Swarm 等)用于管理和调度容器化应用程序。
  • SSH 协议可以用于与容器主机进行通信,执行容器管理命令和监控操作,实现容器编排和管理。

6. 安全审计与监控:

  • SSH 提供了安全的远程登录和通信方式,能够记录用户的登录和操作日志。
  • DevOps 团队可以通过 SSH 登录日志进行安全审计和监控,及时发现异常行为和安全风险。

   

💕💕💕每一次的分享都是一次成长的旅程,感谢您的陪伴和关注。希望这些关于Linux的文章能陪伴您走过技术的一段旅程,共同见证成长和进步!😺😺😺

🧨🧨🧨让我们一起在技术的海洋中探索前行,共同书写美好的未来!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3018587.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

无人售货机是否是下个风口?

当前,众多大中城市正逐步转变为无人零售的新兴试验场,其广阔的发展前景与潜在价值日益受到瞩目。据统计数据显示,无人零售领域已吸引超过650亿元的投资注入。未来五年内,无人零售渠道在中国快消品市场有望迎来爆发性增长&#xff…

【自动驾驶|毫米波雷达】逻辑化讲清快时间与慢时间傅里叶变换

碎碎念:实习过程中发现在进行雷达知识交流时,大部分同事都会用英文简称代替中文的一些称呼,比如Chirp、FFT等等。起初我觉得是因为很多英伟达、TI芯片的开发教程都是英文的,所以看得多了大家都习惯这样称呼,后来在和指…

【Django学习笔记(十)】Django的创建与运行

Django的创建与运行 前言正文1、安装Django2、创建项目2.1 基于终端创建项目2.2 基于Pycharm创建项目2.3 两种方式对比 3、默认项目文件介绍4、APP5、启动运行Django5.1 激活App5.2 编写URL和视图函数对应关系5.3 启动Django项目5.3.1 命令行启动5.3.2 Pycharm启动5.3.3 views.…

欧鹏RHCE 第四次作业

unit4.web服务的部署及高级优化方案 1. 搭建web服务器要求如下: 1.web服务器的主机ip:172.25.254.100 2.web服务器的默认访问目录为/var/www/html 默认发布内容为default‘s page 3.站点news.timinglee.org默认发布目录为/var/www/virtual/timinglee.org…

String、StringBuider、StringBuffer

可变性: String 是final修饰的不可变类,每次修改值都会产生新的对象,而StringBuffer和StringBuilder是可变类,每次修改值不会产生新的对象 线程安全: StringBuilder不是线程安全的,String、StringBuffer…

YOLOv8原理解析[目标检测理论篇]

接下来是我最想要分享的内容,梳理了YOLOv8预测的整个流程,以及训练的整个流程。 关于YOLOv8的主干网络在YOLOv8网络结构介绍-CSDN博客介绍了,为了更好地介绍本章内容,还是把YOLOv8网络结构图放在这里,方便查看。 1.YOL…

【痕迹】QQ+微信朋友圈和聊天记录分析工具1.0.3

【痕迹】QQ微信朋友圈和聊天记录分析工具1.0.3 (1)纯Python语言实现,使用Flask后端,本地分析,不上传个人数据。 (2)数据可视化分析QQ、微信聊天记录,提取某一天的聊天记录与大模型…

Cisco NX-OS System Software - ACI 16.0(5h)

Cisco NX-OS System Software - ACI 16.0(5h) 适用于 ACI 模式下的 Cisco Nexus 9000 系列交换机 请访问原文链接:Cisco NX-OS System Software - ACI 16.0(5h),查看最新版。原创作品,转载请保留出处。 作者主页:sysin.org Cis…

python可视化分析日常记账数据总结个人消费情况

欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一.前言 二.代码 三.分析 一.前言 日常消费数据通常包括消费者在日常生活中购买商品和服务的各种统计数字和信息。 二.代码 import matplotlib.pyplot as plt import pandas as pd #解决数据输出时列名不对齐的问题 …

扩展van Emde Boas树以支持卫星数据:设计与实现

扩展van Emde Boas树以支持卫星数据:设计与实现 1. 引言2. vEB树的基本概念3. 支持卫星数据的vEB树设计3.1 数据结构的扩展3.2 操作的修改3.3 卫星数据的存储和检索 4. 详细设计和实现4.1 定义卫星数据结构体4.2 修改vEB树节点结构4.3 插入操作的伪代码4.4 C语言实现…

鸿蒙通用组件弹窗简介

鸿蒙通用组件弹窗简介 弹窗----Toast引入ohos.promptAction模块通过点击按钮,模拟弹窗 警告对话框----AlertDialog列表弹窗----ActionSheet选择器弹窗自定义弹窗使用CustomDialog声明一个自定义弹窗在需要使用的地方声明自定义弹窗,完整代码 弹窗----Toa…

Kafka---总结篇

kafka架构 主要概念 broker: 存储消息的机器 控制器controller (1)使用zookeeper, 除了提供一般的broker功能之外,还负责选举分区首领。通过在zookeepr中创建一个名为 /controller的临时节点称为 controller。每个选出的contro…

DCEP数字人民币:中国法定区块链中数字货币

一、背景 作为全球第二大经济体,中国在数字货币领域的发展一直备受关注。近年来,中国政府积极推动数字货币的研究和试点工作,逐步开放数字货币交易试点,并计划推出中国唯一合法数字货币——数字人民币(RMB Coin&#…

3套Matplotlib主题

分享3套Matplotlib主题,让图表更好看 seaborn默认主题 import seaborn as sns import pandas as pd import matplotlib as mpltips pd.read_csv(./sns_data/tips.csv)sns.relplot(datatips,x"消费金额 ($)",y"小费金额 ($)",hue"客人性…

【Django学习笔记(九)】Flask + MySQL的结合案例

Flask MySQL结合案例 前言正文案例1:添加用户1.1 浏览器发送请求,返回页面main.pyhtml页面 1.2 新增用户并连接数据库main.pyhtml页面 案例2:查询所有用户2.1 main.py2.2 html2.3 bootstrap优化html 前言 在本文中,介绍如何将 F…

MySQL mydumper工具

目录 1. mydumper介绍 2. mydumper参数解释 3. 备份例子 3.1 备份全库(未包含其他) 3.2 备份全库(包含其他) 3.3 备份指定数据库(-B或--database) 3.4 导出指定表(-T或--tables-list) 3.5 只导出表结构,不导出表数据(-d或--no-data) 3.6 只导出表数据&#…

以gitee为例的git入门使用指北

安装git 在linux中我们首先需要使用 sudo apt install git来下载git 在windows中可以下载msysGit 链接:https://git-scm.com/download/win gitee准备 申请账号 建立仓库 ​ 点击新建仓库 这里一般是私有库,点击创建,这时你就拥有一个线上…

[开发|鸿蒙] DevEco Studio编译构建(笔记,持续更新)

构建体系 编译构建是将应用/服务的源代码、资源、第三方库等,通过编译工具转换为可直接在硬件设备上运行的二进制机器码,然后再将二进制机器码封装为HAP/APP软件包,并为HAP/APP包进行签名的过程。其中,HAP是可以直接运行在模拟器…

Kafka应用Demo:按主题订阅消费消息

安装环境 Kafka安装可参考官方网站的指导(https://kafka.apache.org/quickstart), 按步骤解压压缩包,修改配置。然后再启动zookeeper和kafka-server即可。 需要注意的一点:如果是在VMware虚拟机上启动的kafka, 需要修改一下server.properties配置文件&am…

cmake进阶:目录属性之 INCLUDE_DIRECTORIES说明二

一. 简介 前面几篇文章学习了 cmake的一些目录属性,主要有两个重要的目录属性INCLUDE_DIRECTORIES 属性、LINK_DIRECTORIES 属性。文章如下: cmake进阶:目录属性之 INCLUDE_DIRECTORIES-CSDN博客 本文学习 父目录的 INCLUDE_DIRECTORIES …