Linux系统SSH远程管理服务

news2024/11/14 21:27:53

目录

一、SSH服务介绍

1、SSH协议是什么?

2、SSH的优点

3、SSH的客户端与服务端

4、SSH的原理

4.1 公钥首次连接原理

4.2 ssh加密通讯原理

4.2.1 对称加密

4.2.2 非对称加密 

4.2 ssh远程登录

二、服务端配置

1、常见配置项

1.1 修改默认端口

1.2 禁止root用户登录

1.3 白名单黑名单列表

2、ssh服务的最佳实践操作

3、SSH服务验证

 3.1  使用秘钥对及免交互验证登录

三、SSH客户端

四、TCP Wrappers

1、 策略的配置格式

2、访问控制的基本原则

五、selinux

5.1 什么是selinux

5.2 访问控制系统

5.2.1  自主访问控制系统(Discretionary Access Control,DAC)

5.2.2  强制访问控制(Mandatory Access Control,MAC)

5.3 selinux的作用

5.4 selinux的工作模式

Disable工作模式(关闭模式)

Permissive工作模式(宽容模式)

Enforcing工作模式(强制模式)


一、SSH服务介绍

1、SSH协议是什么?

  • SSH (Secure Shell)是一种安全通道协议,主要用来实现字符界面的远程登录、远程复制等功能。
  • SSH协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令,SSH为建立在应用层和传输层基础上的安全协议。对数据进行压缩,加快传输速度。
  • 远程管理Linux系统基本上都要使用到ssh,因为:telnet、FTP等传输方式是以明文传送用户认证信息,本质上是不安全的。SSH(Secure Shell)目前较可靠,是专为远程登录会话和其他忘了服务提供安全性的协议。利用SSH协议可以有效防止远程管理过程中的信息泄露问题,透过SSH可以对所有传输的数据进行加密,也能够防止DNS欺骗和IP欺骗。

2、SSH的优点

  • 数据传输是加密的,可以防止信息泄漏
  • 数据传输是压缩的,可以提高传输速度

3、SSH的客户端与服务端

客户端

  • Linux 客户端: ssh, scp, sftp,slogin
  • Windows 客户端:xshell, MobaXterm,putty, securecrt, ssh secure shell client
  • SSH客户端的配置文件:/etc/ssh/ssh_config

服务端

  • SSH服务端:OpenSSH (开源)
  • SSH服务端主要包括两个服务功能:ssh远程连接和sftp服务(文件传输功能)

服务名称:sshd
服务端主程序:/usr/sbin/sshd  
服务端配置文件:/etc/ssh/sshd_config 
客户端配置文件:/etc/ssh/ssh_config

4、SSH的原理

4.1 公钥首次连接原理

①客户端发起链接请求
②服务端返回自己的公钥,以及一个会话ID(这一步客户端得到服务端公钥)
③客户端生成密钥对
④客户端用自己的公钥异或会话ID,计算出一个值Res,并用服务端的公钥加密
⑤客户端发送加密后的值到服务端,服务端用私钥解密,得到Res
⑥服务端用解密后的值Res异或会话ID,计算出客户端的公钥(这一步服务端得到客户端公钥)
⑦最终:双方各自持有三个秘钥,分别为自己的一对公、私钥,以及对方的公钥,之后的所有通讯都会被加密

4.2 ssh加密通讯原理

4.2.1 对称加密

① 概念

采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,由于其速度快,对称性加密通常在消息发送方需要加密大量数据时使用

② 常用算法

在对称加密算法中常用的算法有:DES、3DES、TDEA、Blowfish、RC2、RC4、RC5、IDEA、SKIPJACK等。

③ 特点

1、加密方和解密方使用同一个密钥;

2、加密解密的速度比较快,适合数据比较长时的使用;

3、密钥传输的过程不安全,且容易被破解,密钥管理也比较麻烦;

④ 优缺点

对称加密算法的优点是算法公开、计算量小、加密速度快、加密效率高。 对称加密算法的缺点是在数据传送前,发送方和接收方必须商定好秘钥,然后使双方都能保存好秘钥。其次如果一方的秘钥被泄露,那么加密信息也就不安全了。另外,每对用户每次使用对称加密算法时,都需要使用其他人不知道的独一秘钥,这会使得收、发双方所拥有的钥匙数量巨大,密钥管理成为双方的负担

4.2.2 非对称加密 

① 概念

非对称加密算法需要两个密钥:公开密钥(publickey:简称公钥)和私有密钥(privatekey:简称私钥)。公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。

② 常用算法

  • RSA(RSA algorithm):目前使用最广泛的算法

  • DSA(Digital Signature Algorithm):数字签名算法,和 RSA 不同的是 DSA仅能用于数字签名,不能进行数据加密解密,其安全性和RSA相当,但其性能要比RSA快

  • ECC(Elliptic curve cryptography,椭圆曲线加密算法)

  • ECDSA:Elliptic Curve Digital Signature Algorithm,椭圆曲线签名算法,是ECC和 DSA的结合,相比于RSA算法,ECC 可以使用更小的秘钥,更高的效率,提供更高的安全保障

③ 原理

首先ssh通过加密算法在客户端产生密钥对(公钥和私钥),公钥发送给服务器端,自己保留私钥,如果要想连接到带有公钥的SSH服务器,客户端SSH软件就会向SSH服务器发出请求,请求用联机的用户密钥进行安全验证。SSH服务器收到请求之后,会先在该SSH服务器上连接的用户的家目录下

④ 优缺点

相比于对称加密技术,非对称加密技术安全性更好,但性能更慢。

4.2 ssh远程登录

  • 此本次实验中,我们用非对称加密算法ECDSA进行加密,为了方便用root用户,也可给其他普通用户配置
ssh [远程主机用户名]@[远程服务器主机名或IP地址] -p port
命令                                          端口号   

二、服务端配置

1、常见配置项

[root@ky15-1 ~]# vim /etc/ssh/sshd_config 
17  Port    22   
#生产建议修改   

ListenAddress ip
#监听地址设置SSHD服务器绑定的IP 地址,0.0.0.0 表示侦听所有地址安全建议:如果主机不需要从公网ssh访问,可以把监听地址改为内网地址 这个值可以写成本地IP地址,也可以写成所有地址,即0.0.0.0 表示所有IP。

LoginGraceTime 2m
#用来设定如果用户登录失败,在切断连接前服务器需要等待的时间,单位为秒

PermitRootLogin yes 
#默认 ubuntu不允许root远程ssh登录

StrictModes yes   
#检查.ssh/文件的所有者,权限等

MaxAuthTries 
#用来设置最大失败尝试登陆次数为6

MaxSessions  10         
#同一个连接最大会话
PubkeyAuthentication yes     
#基于key验证

PermitEmptyPasswords no      
#密码验证当然是需要的!所以这里写 yes,也可以设置为 no,在真实的生产服务器上,根据不同安全级别要求,有的是设置不需要密码登陆的,通过认证的秘钥来登陆。

PasswordAuthentication yes   
#基于用户名和密码连接
GatewayPorts no
ClientAliveInterval 10 
#单位:秒
ClientAliveCountMax 3 
#默认3
UseDNS yes 
#提高速度可改为no   内网改为no  禁用反向解析
GSSAPIAuthentication yes #提高速度可改为no
MaxStartups    #未认证连接最大值,默认值10
Banner /path/file
#以下可以限制可登录用户的办法:白名单  黑名单
AllowUsers user1 user2 user3@ip(限制主机)
DenyUsers user1 user2 user3
AllowGroups g1 g2
DenyGroups g1 g2

1.1 修改默认端口

#修改默认端口
[root@localhost ssh]#vim  /etc/ssh/sshd_config
#17 行修改自己默认的端口
17 Port 9527

1.2 禁止root用户登录

[root@localhost ssh]#vim  /etc/ssh/sshd_config
#开启38 行 并改为 no,默认注释并写的yes
38 PermitRootLogin no
#注意虽然阻止了root 但是普通用户可以使用su
[root@localhost1 ~]#ssh zhangsan@192.168.91.100 -p 9527
zhangsan@192.168.91.100's password: 
Last login: Fri Aug 27 16:50:35 2021
[zhangsan@localhost2 ~]$ 
[zhangsan@localhost2 ~]$ su root
密码:
[root@localhost2 zhangsan]#

修改 pam认证模块
[root@localhost ssh]#vim /etc/pam.d/su
#开启第6行,默认注释
6 auth            required        pam_wheel.so use_uid

1.3 白名单黑名单列表

[root@localhost ssh]#vim /etc/ssh/sshd_config
#取消注释 默认注释了
40 MaxAuthTries 2

[root@localhost ~]#ssh zhangsan@192.168.91.100 -p 9527
#默认次数3
zhangsan@192.168.91.100's password: 
Permission denied, please try again.
zhangsan@192.168.91.100's password: 
Received disconnect from 192.168.91.100 port 9527:2: Too many authentication failures
Authentication failed.
[root@localhost ~]# ssh -o NumberOfPasswordPrompts=8  root@192.168.91.100
#设置尝试次数为8 
root@192.168.91.100's password:

2、ssh服务的最佳实践操作

  • 建议使用非默认端口 22
  • 禁止使用protocol version 1
  • 限制可登录用户 白名单
  • 设定空闲会话超时时长
  • 利用防火墙设置ssh访问策略
  • 仅监听特定的IP地址 公网 内网
  • 基于口令认证时,使用强密码策略,

               比如:tr -dc A-Za-z0-9_ < /dev/urandom | head -c 12| xargs

  • 使用基于密钥的认证
  • 禁止使用空密码
  • 禁止root用户直接登录
  • 限制ssh的访问频度和并发在线数
  • 经常分析日志 分离

3、SSH服务验证

sshd服务支持两种验证方式

1.密码验证:

对服务器中本地系统用户的登录名称、密码进行验证。这种方式使用最为简便。
但从客户端角度来看,正在连接的服务器有可能被假冒;
从服务器角度来看,当遭遇密码穷举(暴力破解)攻击时防御能力比较弱。
同时:18位密码复杂性(大写、小写、字符、数字) 端口(1023以上叫做高危端口)

  1. 客户端发起ssh请求,服务器会把自己的公钥发送给用户

  2. 用户会根据服务器发来的公钥对密码进行加密

  3. 加密后的信息回传给服务器,服务器用自己的私钥解密,如果密码正确,则用户登录成功

2.密钥对验证:
要求提供相匹配的密钥信息才能通过验证。通常先在客户端中创建一对密钥文件(公钥、私钥),然后将公钥文件放到服务器中的指定位置。远程登录时,系统将使用公钥、私钥进行加密/解密关联验证,大大增强了远程管理的安全性。该方式不易被假冒,且可以免交互登录,在Shell 中被广泛使用。
当密码验证、密钥对验证都启用时,服务器将优先使用密钥对验证。对于安全性要求较高的服务器,建议将密码验证方式禁用,只允许启用密钥对验证方式;若没有特殊要求,则两种方式都可启用。

  1. 首先在客户端生成一对密钥(ssh-keygen)

  2. 并将客户端的公钥ssh-copy-id 拷贝到服务端

  3. 当客户端再次发送一个连接请求,包括ip、用户名

  4. 服务端得到客户端的请求后,会到authorized_keys()中查找,如果有响应的IP和用户,就会随机生成一个字符串,例如:kgc

  5. 服务端将使用客户端拷贝过来的公钥进行加密,然后发送给客户端

  6. 得到服务端发来的消息后,客户端会使用私钥进行解密,然后将解密后的字符串发送给服务端

  7. 服务端接受到客户端发来的字符串后,跟之前的字符串进行对比,如果一致,就允许免密码登录

 3.1  使用秘钥对及免交互验证登录

①客户端生成密钥

②客户端将公钥发给服务端

③连接登录

三、SSH客户端

scp命令 —— 远程安全复制

sftp命令 —— 安全FTP上下载

格式:sftp user@ip

四、TCP Wrappers

在 Linux 系统中,许多网络服务针对客户端提供了访问控制机制,如 Samba、BIND、 HTTPD、OpenSSH 等。本节将介绍另一种防护机制——TCP Wrappers(TCP 封套),以作 为应用服务与网络之间的一道特殊防线,提供额外的安全保障。TCP Wrappers 将 TCP 服务程序“包裹”起来,代为监听 TCP 服务程序的端口,增加了 一个安全检测过程,外来的连接请求必须先通过这层安全检测,获得许可后才能访问真正 的服务程序。TCP Wrappers 还可以记录所有企图访问被保护服务的行为, 为管理员提供丰富的安全分析资料。

1、 策略的配置格式

两个策略文件的作用相反,但配置记录的格式相同,如下所示。

服务程序列表:客户端地址列表

服务程序列表:客户端地址列表之间以冒号分隔,在每个列表内的多个项之间以逗号分 隔

(1)服务程序列表

服务程序列表可分为以下几类。

  1. ALL:代表所有的服务
  2. 单个服务程序:如“vsftpd“
  3. 多个服务程序组成的列表:如“vsftpd,sshd”

(2)客户端地址列表

客户端地址列表可分为以下几类。

  1. ALL:代表任何客户端地址。

  2. LOCAL:代表本机地址。

  3. 单个 IP 地址:如“192.168.4.4”

  4. 网络段地址:如“192.168.4.0/255.255.255.0”

  5. 以“.”开始的域名:如“.bdqn.com”匹配 bdqn.com 域中的所有主机。

  6. 以“.”结束的网络地址:如“192.168.4.”匹配整个 192.168.4.0/24 网段

  7. 嵌入通配符“”“?”:前者代表任意长度字符,后者仅代表一个字符,如“10.0.8.2

  8. 匹配以 10.0.8.2 开头的所有 IP 地址。不可与以“.”开始或结束的模式混用

  9. 多个客户端地址组成的列表:如“192.168.1.,172.16.16.,.bdqn.com”

2、访问控制的基本原则

#注意sshd_config的黑白名单
[root@ky15 ~]#vim /etc/ssh/sshd_config 

[root@ky15 ~]#ls /etc/host
host.conf    hostname     hosts        hosts.allow  hosts.deny
[root@ky15 ~]#vim /etc/hosts.allow 
#配置格式  服务:地址(客户端)
#添加
sshd:192.168.91.101


[root@ky15 ~]#vim /etc/hosts.deny
sshd:ALL

sshd: 192.168.0.0/255.255.255.0 EXCEPT 192.168.0.10

  • 一些独立的进程sendmail  slapd  sshd   stunnel   xinetd   gdm   gnone-session    vsftpd    portmap
  • 有些进程不受tcp_wrappers管理httpd   smb    squid 等

五、selinux

5.1 什么是selinux

SELinux,Security Enhanced Linux 的缩写,也就是安全强化的 Linux,是由美国国家安全局(NSA)联合其他安全机构(比如 SCC 公司)共同开发的,旨在增强传统 Linux 操作系统的安全性,解决传统 Linux 系统中自主访问控制(DAC)系统中的各种权限问题(如 root 权限过高等)。

它是部署在 Linux 上用于增强系统安全的功能模块。

5.2 访问控制系统

5.2.1  自主访问控制系统(Discretionary Access Control,DAC)

是 Linux 的默认访问控制方式,也就是依据用户的身份和该身份对文件及目录的 rwx 权限来判断是否可以访问。不过,在 DAC 访问控制的实际使用中我们也发现了一些问题:

  1. root 权限过高,rwx 权限对 root 用户并不生效,一旦 root 用户被窃取或者 root 用户本身的误操作,都是对 Linux 系统的致命威胁。

  2. Linux 默认权限过于简单,只有所有者、所属组和其他人的身份,权限也只有读、写和执行权限,并不利于权限细分与设定。

  3. 不合理权限的分配会导致严重后果,比如给系统敏感文件或目录设定 777 权限,或给敏感文件设定特殊权限——SetUID 权限等。

5.2.2  强制访问控制(Mandatory Access Control,MAC)

是通过 SELinux 的默认策略规则来控制特定的进程对系统的文件资源的访问。也就是说,即使你是 root 用户,但是当你访问文件资源时,如果使用了不正确的进程,那么也是不能访问这个文件资源的。

  • SELinux 控制的就不单单只是用户及权限,还有进程。每个进程能够访问哪个文件资源,以及每个文件资源可以被哪些进程访问,都靠 SELinux 的规则策略来确定。

5.3 selinux的作用

传统的 Linux 系统安全,采用的是 DAC(自主访问控制方式),而 SELinux 是部署在 Linux 系统中的安全增强功能模块,它通过对进程和文件资源采用 MAC(强制访问控制方式)为 Linux 系统提供了改进的安全性。

需要注意的是,SELinux 的 MAC 并不会完全取代 DAC,恰恰相反,对于 Linux 系统安全来说,它是一个额外的安全层,换句话说,当使用 SELinux 时,DAC 仍然被使用,且会首先被使用,如果允许访问,再使用 SELinux 策略;反之,如果 DAC 规则拒绝访问,则根本无需使用 SELinux 策略。

例如,若用户尝试对没有执行权限(rw-)的文件进行执行操作,那么传统的 DAC 规则就会拒绝用户访问,因此,也就无需再使用 SELinux 策略。

相比传统的 Linux DAC 安全控制方式,SELinux 具有诸多好处,比如说:

  • 它使用的是 MAC 控制方式,这被认为是最强的访问控制方式;

  • 它赋予了主体(用户或进程)最小的访问特权,这也就意味着,每个主体仅被赋予了完成相关任务所必须的一组有限的权限。通过赋予最小访问特权,可以防止主体对其他用户或进程产生不利的影响;

  • SELinux 管理过程中,每个进程都有自己的运行区域(称为域),各进程仅运行在自己的域内,无法访问其他进程和文件,除非被授予了特殊权限。

  • SELinux 可以调整到 Permissive 模式,此模式允许查看在系统上执行 SELinux 后所产生的印象。在 Permissive 模式中,SELinux 仍然会记录它所认为的安全漏洞,但并不会阻止它们。

5.4 selinux的工作模式

SELinux 提供了 3 种工作模式:Disabled、Permissive 和 Enforcing,而每种模式都为 Linux 系统安全提供了不同的好处。

Disable工作模式(关闭模式)

在 Disable 模式中,SELinux 被关闭,默认的 DAC 访问控制方式被使用。对于那些不需要增强安全性的环境来说,该模式是非常有用的。

例如,若从你的角度看正在运行的应用程序工作正常,但是却产生了大量的 SELinux AVC 拒绝消息,最终可能会填满日志文件,从而导致系统无法使用。在这种情况下,最直接的解决方法就是禁用 SELinux,当然,你也可以在应用程序所访问的文件上设置正确的安全上下文。

需要注意的是,在禁用 SELinux 之前,需要考虑一下是否可能会在系统上再次使用 SELinux,如果决定以后将其设置为 Enforcing 或 Permissive,那么当下次重启系统时,系统将会通过一个自动 SELinux 文件重新进程标记。

关闭 SELinux 的方式也很简单,只需编辑配置文件 /etc/selinux/config,并将文本中 SELINUX= 更改为 SELINUX=disabled 即可,重启系统后,SELinux 就被禁用了。

Permissive工作模式(宽容模式)

在 Permissive 模式中,SELinux 被启用,但安全策略规则并没有被强制执行。当安全策略规则应该拒绝访问时,访问仍然被允许。然而,此时会向日志文件发送一条消息,表示该访问应该被拒绝。

SELinux Permissive 模式主要用于以下几种情况: 审核当前的 SELinux 策略规则; 测试新应用程序,看看将 SELinux 策略规则应用到这些程序时会有什么效果; 解决某一特定服务或应用程序在 SELinux 下不再正常工作的故障。

某些情况下,可使用 audit2allow 命令来读取 SELinux 审核日志并生成新的 SELinux 规则,从而有选择性地允许被拒绝的行为,而这也是一种在不禁用 SELinux 的情况下,让应用程序在 Linux 系统上工作的快速方法。

Enforcing工作模式(强制模式)

从此模式的名称就可以看出,在 Enforcing 模式中, SELinux 被启动,并强制执行所有的安全策略规则。

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

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

相关文章

Transformer and Pretrain Language Models3-1

content transformer attention mechanism transformer structure​​​​​​​ pretrained language models language modeling pre-trained langue models(PLMs&#xff09; fine-tuning approaches PLMs after BERT applications of masked LM frontiers of PLMs …

【Godot4自学手册】第四节动画状态机-AnimationTree

各位同学大家好&#xff01;今天继续学习Godot4&#xff0c;本节将要学习AnimationTree&#xff0c;来实现控制主人公的动画。 一、AnimationPlay节点介绍 Godot引擎通过AnimationPlay节点实现了最灵活的动画系统&#xff0c;它几乎可以给godot中的任意节点的任意属性添加动画…

携程基于Jira Cloud的敏捷项目管理实践

好的工具可以满足团队在各个成长阶段的管理诉求 实践一&#xff1a;对齐目标/团队OKR/多团队协作战略项目 实践二&#xff1a;以产品为中心的协作框架 实践三&#xff1a;交付团队管理 实践四&#xff1a;和海外子公司对齐&#xff0c;协作

数灵通丨可以实现抖音引流微信小程序了

抖音作为一款火爆的短视频社交平台&#xff0c;吸引了数亿用户的关注和喜爱。除了观看和制作视频外&#xff0c;抖音还提供了跳转到小程序的功能&#xff0c;让用户可以享受更多功能和乐趣。那么&#xff0c;如何在抖音中跳转到小程序呢&#xff1f;以下是详细解答&#xff1a;…

Android 基础技术——View 的宽高

笔者希望做一个系列&#xff0c;整理 Android 基础技术&#xff0c;本章是关于 View 的宽高 Activity Resume 的时候设置或者获取view的宽高是否有效? 回答&#xff1a;不确定。 首次 onResume 无效&#xff0c;二次 onResume 就有效了。 回顾「Android 基础技术——addView 流…

[Python] glob内置模块介绍和使用场景(案例)

Unix glob是一种用于匹配文件路径的模式&#xff0c;它可以帮助我们快速地找到符合特定规则的文件。在本文中&#xff0c;我们将介绍glob的基本概念、使用方法以及一些实际应用案例。 glob介绍 Glob(Global Match)是Unix和类Unix系统中的一种文件名扩展功能&#xff0c;它可以…

eNSP学习——理解交换机Hybird接口的应用

目录 原理概述 实验内容 实验目的 实验步骤 实验拓扑 实验编址 实验步骤 基本配置&#xff08;此处仅以PC1为例&#xff09; 实现组内通信、组间间隔 实现网络管理员对所有网络的访问 原理概述 Hybrid接口既可以连接普通终端的接入链路又可以连接交换机间的干道…

嵌入式面试提问

嵌入式面试问题 1.讲一下STM32的时钟系统 现总结下&#xff1a;首先是时钟源输入时钟信号到单片机&#xff0c;然后单片机对输入的时钟信号进行倍频和分频处理&#xff0c;再将处理后的时钟信号输出至系统&#xff0c;外设或外部接口。   先看这张图&#xff0c;最外面的线上…

[docker] Docker资源管理

一、docker资源控制 Docker通过Cgroup 来控制容器使用的资源配额&#xff0c;包括CPU、内存、磁盘三大方面&#xff0c;基本覆盖了常见的资源配额和使用量控制。Caroup 是ControlGroups的缩写&#xff0c;是Linux 内核提供的一种可以限制、记录、隔离进程组所使用的物理资源(如…

[linux] 域名解析失败案例定位 [Errno -2] Name or service not known

首先发现代码里这段运行报错&#xff1a; socket.gethostbyname_ex(host_name) Traceback (most recent call last): File “”, line 1, in socket.gaierror: [Errno -2] Name or service not known import socket host_name socket.gethostname() print(socket.gethostby…

CSS3基础知识总结

目录 一、CSS3 边框 1.border-radius&#xff1a;圆角边框 2.box-shadow&#xff1a;添加阴影 3.border-image&#xff1a;图片边框 二、CSS3 渐变 1.线性渐变(Linear Gradients) a.由上到下&#xff08;默认&#xff09; b.从左到右 c.对角 d.使用角度 2.径向渐变(…

js计算皮尔逊相关系数

代码如下; let XGX {correlationCoefficient(pA, pB) {let covXY -pA * pBlet varX pA * (1-pA) let varY (1-pB)* pBlet res covXY / (Math.sqrt(varX*varY, 2))return res},correlation(x,y){x[0.3,50.2,99.5,199.3,299,398];y[0.1,50,99.9,200,300,400];// 计算均值con…

深入理解HarmonyOS UIAbility:生命周期、WindowStage与启动模式探析

UIAbility组件概述 UIAbility组件是HarmonyOS中一种包含UI界面的应用组件&#xff0c;主要用于与用户进行交互。每个UIAbility组件实例对应最近任务列表中的一个任务&#xff0c;可以包含多个页面来实现不同功能模块。 声明配置 为了使用UIAbility&#xff0c;首先需要在mod…

Nginx 配置解析:从基础到高级应用指南

Nginx 配置解析&#xff1a;从基础到高级应用指南 Nginx 配置解析&#xff1a;从基础到高级应用指南1. 安装和基本配置安装 Nginx基本配置 2. 虚拟主机配置3. 反向代理配置4. 负载均衡配置5. SSL 配置6. 高级配置选项结语 Nginx 配置解析&#xff1a;从基础到高级应用指南 Ngi…

Scapy编程指南(基础概念)

Scapy编程指南&#xff08;基础概念&#xff09; Scapy是什么 Scapy是Python中一个非常强大的库&#xff0c;它专门用于处理、发送和捕获网络协议中的数据包&#xff0c;它允许开发人员通过Python代码构建、解析和发送自定义网络协议的数据包。Scapy提供了一种直观、灵活的方…

Java代码审计原生反序列化CC链跟踪分析

希望和各位大佬一起学习&#xff0c;如果文章内容有错请多多指正&#xff0c;谢谢&#xff01; 个人博客链接&#xff1a;CH4SER的个人BLOG – Welcome To Ch4sers Blog 在前一篇文章我分析了Commons Collections1链​​​​​​​&#xff0c;其中跟链的顺序是&#xff1a…

【jetson笔记】vscode远程调试

vscode安装插件 vscode安装远程插件Remote-SSH 安装完毕点击左侧远程资源管理器 打开SSH配置文件 添加如下内容&#xff0c;Hostname为jetson IP&#xff0c;User为登录用户名需替换为自己的 Host aliasHostName 192.168.219.57User jetson配置好点击连接&#xff0c;控制台输…

阿里云推出第八代企业级实例 g8i:AI 推理性能最高提升 7 倍、可支持 72B 大语言模型

云布道师 1 月 11 日&#xff0c;全球领先的云计算厂商阿里云宣布推出第八代企业级通用计算实例 ECS g8i&#xff0c;这也是国内首款搭载第五代英特尔至强可扩展处理器&#xff08;代号 EMR&#xff09;的云计算产品。依托阿里云自研的「飞天CIPU」架构体系&#xff0c;ECS g8…

【每日一题】3.LeetCode——相交链表

&#x1f4da;博客主页&#xff1a;爱敲代码的小杨. ✨专栏&#xff1a;《Java SE语法》 ❤️感谢大家点赞&#x1f44d;&#x1f3fb;收藏⭐评论✍&#x1f3fb;&#xff0c;您的三连就是我持续更新的动力❤️ &#x1f64f;小杨水平有限&#xff0c;欢迎各位大佬指点&…

Linux-共享内存

文章目录 前言一、system V共享内存申请共享内存挂载共享内存删除共享内存挂载删除共享内存 二、示例代码三.运行效果 前言 在这之前我们已经学习了两种进程间通信方式&#xff1a;匿名管道和命名管道。 从我们之前的学习已经知道&#xff0c;想让多个进程间进行通信就需要让他…