SSH远程访问及控制

news2024/11/19 0:44:32

文章目录

  • 1.SSH远程管理
    • 1.1 SSH的概述
    • 1.2 OpenSSH服务器
    • 1.3 sshd_ config常用选项设置
    • 1.4 SSH端口、配置文件
  • 2.配置OpenSSH服务端
    • 2.1 更改端口号
    • 2.2 用户登录控制
  • 3.登录验证方式
    • 3.1 密码验证
    • 3.2 密钥对验证
    • 3.3 配置密钥对验证
  • 5.TCP Wrappers访问控制
    • 5.1 TCPWrappers机制的基本原则
    • 5.2 实例操作
    • 5.3 无交互式密钥登录的种方法
  • 6.scp和sftp
    • 6.1 scp远程复制
    • 6.2 sftp安全文件传输协议
  • 7.总结

1.SSH远程管理

1.1 SSH的概述

  • SSH是一种安全通道协议,主要用来实现字符界面的远程登录、远程复制等功能

  • 对通信双方的数据传输进行加密处理,其中包括用户登录时输入的用户口令

  • 与早期的Telnet(远程登录)、rsh(远程执行命令)、rcp(远程文件控制)等相比,SSH协议提供了更好的安全性。

在这里插入图片描述

SSH服务端主要包括两个服务功能SSH远程连接和SFTP服务作用;SSHD服务使用SSH协议可以用来进行远程控制,或在计算机之间传送文件。

相比较之前用Telnet方式来传输文件要安全很多,因为Telnet使用明文传输,SSH是加密传输,利用SSH协议可以有效防止远程管理过程中的信息泄露问题,通过SSH可以对所有传输的数据进行加密,也能够防止DNS欺骗和IP欺骗

1.2 OpenSSH服务器

在这里插入图片描述

SSH客户端:Putty、Xshell、CRT、MobaXterm
SSH服务端:OpenSSH

OpenSSH是实现SSH协议的开源软件项目,适用于各种UNIX、 Linux操作系统。Centos 7系统默认已安装OpenSSH相关软件包,并将sshd 服务添加为开机自启动

  • 执行"systemctl start sshd"命令即可启动sshd服务

  • 查看服务状态执行“systemctl status sshd”命令。

  • 查看服务是否自启动执行systemctl is-enabled sshd”命令。

[root@clr ~]# systemctl status sshd   #查看sshd服务状态
   Active: active (running) since 四 2023-03-23 11:03:03 CST; 4 weeks 0 days ago
     Docs: man:sshd(8)
           man:sshd_config(5)
 
[root@clr ~]# systemctl is-enabled sshd  #查看服务sshd是否自启动执行
enabled  

1.3 sshd_ config常用选项设置

 1 vim /etc/ssh/sshd_config            #服务端配置文件
 2 #Port 22                            #监端口为22
 3 #AddressFamily any                  #监听地址为任意网卡,也可以指定Openssh服务器的具体ip
 4 #LoginGraceTime 2m                  #登录验证时间为2分钟
 5 #PermitRootLogin yes                #禁止root用户登录
 6 #MaxAuthTries 6                     #最大重试次数为 6
 7 #PermitEmptyPasswords no            #禁止空密码用户登录
 8 #UseDNS no                          #禁用DNS反向解析,以提高服务器的响应速度
 9 ----------------------------------------------------------------------------------
10 配置允许和禁止用户登录:加@表示限制ip,注意允许和禁止不要同时使用!!
11 AllowUsers zhangsan                 #允许zhangsan登录(多个用户以空格间隔)
12 AllowUsers zhangsan@192.168.80.80   #只允许zhangsan通过192.168.80.80登录
13 DenyUsers lisi                      #禁止lisi登录

1.4 SSH端口、配置文件

  • sshd服务默认使用TCP的22端口

  • sshd服务的默认配置文件是==/etc/ssh/sshd_config==。

  • ssh_config和sshd_config都是ssh服务器的配置文件,二者区别在于前者是针对客户端的配置文件/etc/ssh/ssh_config,后者则是针对服端的配置文件/etc/ssh/sshd_config

[root@clr ~]# netstat -lntp  #查看服务使用的端口号


tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1074/sshd           
     3052/sshd: root@pts 
[root@clr ~]# ss -lntp
(("dnsmasq",pid=1457,fd=6))
LISTEN     0      128                   *:22                                *:*                   users:(("sshd",pid=1074,fd=3))
LISTEN     0      128           127.0.0.1:631                               *:*                   users:

2.配置OpenSSH服务端

2.1 更改端口号

sshd服务使用的默认端口号为22,必要时建议修改此端口号,并指定监听服务的具体IP地址,以提高在网络中的隐蔽性。除此之外,SSH协议的版本选用V2比V1的安全性更好,禁用DNS反向解析可以提高服务器的响应速度

Port 22    #监听22号端口
ListenAddress 0.0.0.0  #监听地址为任意网段,也可以指定OpenSSH服务器的具体IP

LoginGraceTime 2m    #登录验证时间为2分钟
PermitRootLogin no  #禁止root用户登录
MaxAuthTries 6   #最大重试次数为6

PermitEmptyPasswords no   #禁止空密码用户登录
UseDNS no  #禁用DNS反向解析,以提高服务器的响应速度

修改端口号为411;

[root@clr ~]# vim /etc/ssh/sshd_config
Port 411  #将端口号改为411
[root@clr ~]# netstat -antp | grep sshd
tcp        0      0 127.0.0.1:6010          0.0.0.0:*               LISTEN      1750/sshd: root@pts 
tcp        0      0 127.0.0.1:6011          0.0.0.0:*               LISTEN      4143/sshd: root@pts 
tcp        0      0 0.0.0.0:411     #sshd修改后的端口号           0.0.0.0:*               LISTEN      4049/sshd           
tcp        0      0 192.168.80.20:411       192.168.80.1:51561      ESTABLISHED 4143/sshd: root@pts 
tcp        0      0 192.168.80.20:22        192.168.80.1:63555      ESTABLISHED 1750/sshd: root@pts 
tcp6       0      0 ::1:6010                :::*                    LISTEN      1750/sshd: root@pts 
tcp6       0      0 ::1:6011                :::*                    LISTEN      4143/sshd: root@pts 
tcp6       0      0 :::411                  :::*                    LISTEN      4049/sshd       

在这里插入图片描述

2.2 用户登录控制

  • sshd服务默认允许root用户登录,当在Internet中使用时这是非常不安全的。普遍的做法是:先以普通用户远程登入,进入安全Shell环境后,根据实际需要使用su命令切换为root用户

  • 关于sshd服务的用户登录控制,通常应禁止root用户或密码为空的用户登录。另外,可以限制登录验证的时间(默认为2分钟)及最大重试次数,若超过限制后任未能登录则断开连接。

  • 当希望只允许或禁止某些用户登录时,可以使用AllowUsers或DenyUsers配置,两者用法相似(注意不要同时使用)。
    在这里插入图片描述

3.登录验证方式

当密码验证、密钥对验证都启用时,服务器将优先使用密钥对验证。对于安全性要求较高的服务器,建议将密码验证方式禁用,只允许启用密钥对验证方式;若没有特殊要求,则两种方式都可启用。

3.1 密码验证

以服务器中本地系统用户的登录名称、密码进行验证。这种方式使用最为简便,但从客户机角度来看,正在连接的服务器有可能被假冒从服务器角度来看,当遭遇密码穷举(暴力破解)攻击时防御能力比较弱

3.2 密钥对验证

要求提供相匹配的密钥信息才能通过验证。通常先在客户机中创建一对密钥文件(公钥、私钥),然后将公钥文件放到服务器中的指定位置。远程登录时,系统将使用公钥、私钥进行加密/解密关联验证,大大增强了远程管理的安全性。

vim /etc/ssh/sshd_config
PasswordAuthentication yes                         #启用密码验证
PubkeyAuthentication yes                           #启用密钥对验证
AuthorizedKeysFile  .ssh/ authorized_keys          #指定公钥库文件

知识拓展部分:

关于公钥和私钥,它们的关系如下:
公钥和私钥是成对生成的,这两个密钥互不相同,可以互相加密和解密;不能根据一个密钥来推算出另一个密钥;公钥对外公开,私钥只有私钥的持有者才知道。如果用公钥对数据进行加密,只有用相对应的私钥才能解密;如果用私钥对数据进行加密,那么只有用对应的公钥才能解密
如果要想连接到带有公钥的SSH服务器,客户端SSH软件就会向SSH服务器发出请求,请求用联机的用户密钥进行安全验证。SSH服务器收到请求之后,会先在该SSH服务器上连接的用户家目录下寻找事先放上去的对应用户的公用密钥,然后把它和连接的客户端发送过来的公用密钥进行比较。如果两个密钥一致,SSH服务器就用公钥加密"质询"( challenge)并把它发送给SSH客户端。

###验证
ssh [选项] 服务器端用户名@服务器IP地址
###当用户第一次登录SSH服务器时,必须接受服务器发来的ECDSA密钥(根据提示输入“yes”)后才能继续验证。接受的密钥信息将会保存到~/.ssh/known_hosts文件中
-p:指定非默认的端口号,缺省时默认使用22号端口
ssh -p 23333 服务器端用户名@服务器IP地址

3.3 配置密钥对验证

(1)在客户端创建密钥对

###在客户端创建密钥对,通过ssh-keygen工具为当前用户创建密钥对文件
###可用的加密算法为RSA、ECDSA或DSA等(ssh-keygen命令的“-t”选项用于指定算法类型)
###切换到test用户
su - test
###以ECDSA加密算法生成密钥对
ssh-keygen -t ecdsa
Generating public/private ecdsa key pair.
###指定私钥位置,直接回车使用默认位置
Enter file in which to save the key (/home/admin/.ssh/id_ecdsa):
###生成的私钥、公钥文件默认存放在宿主目录中的隐藏目录.ssh/下
Created directory '/home/test/.ssh'.
###设置私钥的密码(直接回车设置为空可在登陆时免交互界面直接登录成功)
Enter passphrase (empty for no passphrase) :
###确认输入
Enter same passphrase again:
###id_ ecdsa是私钥文件,权限默认为600;id_ecdsa.pub是公钥文件,用来提供给SSH服务器
ll -a ~/.ssh/
###将生成的公钥文件传送给服务器端(默认传输到登陆的用户的家目录当中的.ssh/目录下)
ssh-copy-id -p 23333 -i 公钥文件 服务器端用户名@服务器端IP地址
###服务器端将发送过来的公钥文件内容重定向输出到sshd配置文件指定的公钥库文件(目录默认权限700,文件默认权限为600,否则不生效)目录AuthorizedKeyFile .ssh/authorized_keys
cat ~/id_ras.pub > ~/.ssh/authorized_keys
###重启服务
systemctl restart sshd
###再次利用客户端登录test,若成功,显示直接登陆成功

在这里插入图片描述

(2)把公钥文件发送给服务端主机,即可完成密钥验证登录;

ssh-copy-id -i id_rsa.pub dn@192.168.41.50
 # ssh-copy-id 可以指定在指定用户的家目录中生成公钥文件的目录和文件,并且目录权限700,文件权限600,只有这样密钥验证才能使用
 # -i 指定公钥文件
 

在这里插入图片描述

5.TCP Wrappers访问控制

5.1 TCPWrappers机制的基本原则

在这里插入图片描述

  • 由其他网络服务程序调用 libwrap.so. 链接库,不需要运行 tpd 程序。此方式的应用更加泛,也更有效率。*

  • 使用 ldd 命令可以查看程序的 ibwrap.so.*链接库Idd $(which ssh)

访问策略

  • TCP Wrappers 机制的保护对象为各种网络服务程序,针对访问服务的客户端地址进行访问控制

  • 对应的两个策略文件为/etc/hosts.allow 和/etc/hosts.deny,分别用来设置允许和拒绝的策略

格式

<服务程序列表>:<客户端地址列表>
(1) 服务程序列表
ALL:代表所有的服务。
单个服务程序:如”vsftpd”
多个服务程序组成的列表: 如rvsftpd,sshd"。

(2)客户端地址列表
ALL:代表任何客户端地址。
LOCAL:代表本机地址。
多个地址以逗号分隔
允许使用通配符 “*”和“?”,前者代表任意长度字符,后者仅代表一个字符
网段地址,如“192.168.80.” 或者 192.168.80.0/255.255.255.0

  • 首先检查/etc/hosts.allow文件, 如果找到相匹配的策略,则允许访问

  • 否则继续检查/etc/hosts.deny文件如果找到相匹配的策略,则拒绝访问

  • 如果检查上述两个文件都找不到相匹配的策略,则允许访问

允许所有,拒绝个别”——黑名单
只需在/etc/hosts.deny文件中添加相应的拒绝策略(系统默认的就是允许所有)

“允许个别,拒绝所有”——白名单
除了在/etc/hosts .allow中添加允许策略之外,还需要在/etc/ hosts .deny文件中设置"ALL:ALL"的拒绝策略

5.2 实例操作

(1)实例1:设置黑名单,不允许IP地址为192.168.41.50的主机访问sshd服务;
在这里插入图片描述
在这里插入图片描述
(2)实例2:设置白名单,不允许IP地址为192.168.41.50的主机访问sshd服务;
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.3 无交互式密钥登录的种方法

1)在生成密钥文件时设置私钥密码为空即可完成免交互登录

(2)通过创建ssh会话代理 (只在当前会话有效)

1.生成密钥对时密码为空
2.若密钥对生成时设置了密码,则设置个临时的会话代理(该代理只在当前的会话有效)
ssh-agent bash
ssh-add
###输入密钥对的密码
Enter passphrase for /root/.ssh/id_ecdsa:
Identity added:/root.ssh/id_ecdsa(/root.ssh/id_ecdsa)
3.ssh-keygen -f ~/.ssh/id_ecdsa -P '' -q -t ecdsa
-P:设置密码,''为空

6.scp和sftp

6.1 scp远程复制

###下行复制,从服务器端下载到本机
scp 服务器端用户名@服务器IP地址:文件的绝对路径 复制到本机的哪的绝对路径
###上行复制,从本机上传到服务器端
scp -r 复制到本机的哪的绝对路径 服务器端用户名@服务器IP地址:文件的绝对路径
-r:复制或上传目录时,需要添加-r选项

6.2 sftp安全文件传输协议

  • SFTP(SSH File Transfer Protocol,也称 Secret File Transfer Protocol)是一种安全的文件传输协议,一种通过网络传输文件的安全方法

  • 它确保使用私有和安全的数据流来安全地传输数据
    在这里插入图片描述
    SFTP和FTP之间的区别:

(1)安全通道

  • FTP 不提供任何安全通道在主机之间传输文件;
  • 而,SFTP协议提供了一个安全通道,用于在网络上的主机之间传输文件。

(2)使用的协议

  • FTP使用 TCP/IP协议

  • 而,SFTP是SSH协议的一部分,它是一种远程登录信息

(3)链接方式

FTP使用TCP的21号端口建立连接

而,SFTP是在客户端和服务器之间通过SSH协议(TCP端口22)建立的安全连接来传输文件。

(4)安全性

  • FTP密码和数据以纯文本格式发送,大多数情况下是不加密的,安全性不高。

  • 而SFTP会在发送之前加密数据,二进制的形式传递,是无法 “按原样” 阅读的,安全性较高。

sftp 服务器端用户名@服务器端IP地址
Connecting to 服务器端IP地址 ...
###输入密码
服务器端用户名@服务器端IP地址’s password:
sftp> ls
###下载文件到ftp目录
sftp> get 文件名
###上传文件到ftp目录
sftp> put 文件名
###退出
sftp> quit

注意:由于使用了加密/解密技术,所以传输效率比普通的FTP要低,但安全性更高。操作语法sftp与ftp几乎一样.

7.总结

(1)ssh服务器的配置文件以及所在的位置客户端的配置文件:ssh_config;位置:/etc/ssh/ssh_config
服务端的配置文件:sshd_config;位置:/etc/ssh/sshd_config

(2)ssh服务器客户端的功能
远程登录:ssh 用户名@IP地址
复制:scp (注意主机IP后面要加冒号,复制目录时加-r)
sftp:格式跟ftp相同(上传文件和下载文件功能)

(3)配置密钥对验证
流程:在客户端创建密钥对(有公钥文件和私钥文件)
将公钥文件上传到服务器(有两种方法:一种是远程复制到服务器中,再将服务器端导入私钥文件到公钥对中;另一种方法是直接在客户端导入,服务端直接使用即可)
最后在客户端进行密钥对验证,还可以设置免密登录(ssh-agent bash 、ssh add)

(4)TCP wrappers
两种访问策略文件:/etc/hosts.allow 、/etc/hosts.deny
访问的过程:先检查/etc/hosts.allow文件,有则访问,无则继续访问/etc/hosts.deny文件,若有则拒绝,无则允许访问

(5)可以查看是否有人在连续攻击你(查看在这里插入图片描述
失败的ssh)

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

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

相关文章

第37讲:Python if-elif-else流程控制语句核心概念以及案例演示

文章目录 1.流程控制的概念2.Python中代码块的相关注意事项3.if流程控制语句的语法格式4.if流程控制的简单使用4.1.单分支的if流程控制语句4.2.加else语句的if流程控制4.3.多分支的if流程控制4.4.多分支if代码优化 5.对象的布尔值6.if-else条件表达式6.1.if-else条件表达式语法…

String的那些事儿

String作为我们最常用的Java类之一&#xff0c;在日常开发过程中充当着重要角色&#xff1f;那么大家真的了解String吗&#xff1f;让我们一起看看下面的问题&#xff1a; String内存结构&#xff1f;对象存储在堆上还是栈上&#xff1f;一个String有多长&#xff1f;占内存多…

享元设计模式解读

目录 问题引进 展示网站项目需求 传统方案解决网站展现项目 传统方案解决网站展现项目-问题分析 享元模式基本介绍 基本介绍 享元模式的原理类图 对类图的说明 内部状态和外部状态 享元模式解决网站展现项目 应用实例要求 思路分析和图解(类图) 代码实现 享元模式…

创建一个 vue 3 项目

vue create projectNameVue CLI v5.0.8 ? Please pick a preset: ❯ Default ([Vue 3] babel, eslint)Default ([Vue 2] babel, eslint)Manually select featuresbabel : ES2015 and beyond。Babel 默认使用一组 ES2015 语法转换器&#xff0c;允许你使用新的语法&#xff0c…

vue2数据响应式原理(6) 处理数组特殊遍历

打开一直在写的案例 然后 找到src下的 dataResp.js 这里 我们Observer中 数数组和对象还是要分开处理 因为他们还是有所不同 我们修改 Observer 类代码如下 class Observer{constructor(value) {//相当于 给拿到的对象 其中的__ob__绑定 值为thsi,在类中用this 表示取实例本…

数据结构入门(C语言版)一篇文章教会你手撕八大排序

八大排序 排序的概念常见的排序算法排序算法的实现一、直接插入排序二、希尔排序三、选择排序四、堆排序五、冒泡排序六、快速排序1.递归写法①三位取中函数②hoare版本③挖坑法④前后指针版本⑥快排主函数 2.非递归写法 七、归并排序1.递归写法2.非递归写法 八、非比较排序1.基…

倾斜摄影三维模型顶层合并技术及其实现方法

倾斜摄影三维模型顶层合并技术及其实现方法 倾斜摄影三维模型由于数据量大、结构复杂&#xff0c;常常需要进行顶层合并&#xff0c;以便更好地应用到城市规划、土地管理和文化遗产保护等领域。本文将介绍倾斜摄影三维模型顶层合并技术及其实现方法。 1、什么是顶层合并 倾斜…

【安全与风险】普适计算中的安全与隐私研究

普适计算中的安全与隐私研究 日常生活的数字化无处不在的计算对移动社交媒体的影响讨论更便宜的存储和更强大的处理的影响移动和普适计算的影响有时候&#xff0c;惊奇另一个例子攻击模型贡献是什么&#xff1f;智能家居的案例研究本文的主要内容如何自学? 日常生活的数字化 …

第三章 使用 Maven:命令行环境

第一节 实验一&#xff1a;根据坐标创建 Maven 工程 Maven 核心概念&#xff1a;坐标 ①数学中的坐标 使用 x、y、z 三个**『向量』作为空间的坐标系&#xff0c;可以在『空间』中唯一的定位到一个『点』**。 ②Maven中的坐标 [1]向量说明 使用三个**『向量』在『Maven的仓…

不知道今天吃什么?今天吃什么 API 告诉你

引言 在现代社会&#xff0c;由于生活节奏加快和繁忙的工作日程&#xff0c;越来越多的人感到选择今天吃什么餐点是一项繁琐且令人困扰的任务。为了解决这个问题&#xff0c;许多人会求助于在线菜谱和美食博客等渠道&#xff0c;但是这些选项通常是繁琐和耗时的。 幸运的是&a…

聚观早报 | 马斯克称星舰1-2个月内准备再发射;推特撤下官媒标签

今日要闻&#xff1a;马斯克称星舰1-2个月内准备再发射&#xff1b;推特撤下「官媒」标签&#xff1b;Pixel Fold 折叠机型首次被泄露&#xff1b;蔚来员工曝半年加班500小时&#xff1b;苹果Mac Pro和Mac Studio无缘WWDC 马斯克称星舰1-2个月内准备再发射 美国当地时间 4 月 …

关于GNSS技术介绍(二)

在上期文章中&#xff0c;我们介绍了GNSS技术的发展历程、原理&#xff0c;并对不同类型的定位技术进行了介绍&#xff0c;在本期文章中我们将继续讨论GNSS的优点与应用及其测试方法和解决方案。 GNSS的优点与应用 目前GNSS技术已经成为日常生活不可或缺的一部分&#xff0c;几…

自定义RecyclerView.LayoutManager实现类实现卡片层叠布局的列表效果

一.前言 先看效果&#xff08;大佬们请忽略水印&#xff09;&#xff1a; 卡片层叠列表的实现效果已经发布成插件&#xff0c;集成地址&#xff1a;implementation ‘com.github.MrFishC:YcrCardLayoutHepler:v1.1’&#xff1b; 先讲解如何快速实现&#xff0c;然后再来讲解…

小程序开发费用估算:如何控制项目成本?

在当今数字化的时代&#xff0c;小程序已经成为了很多企业和个人开展业务的重要手段。小程序的开发需要耗费时间和资源&#xff0c;因此在项目初期&#xff0c;了解预计的开发费用是非常重要的。本文将详细介绍如何估算小程序开发费用以及如何控制项目成本。 小程序开发费用 …

2023年重庆经济发展研究报告

第一章 发展概况 1.1 地理和人口发展概况 重庆&#xff08;简称“渝”&#xff09;位于中国西南地区&#xff0c;是中国四个直辖市之一&#xff0c;地处长江中上游&#xff0c;横跨东经10517到11011&#xff0c;北纬2810到3213之间。重庆市地势复杂&#xff0c;地形多山&…

风光场景削减及源荷不确定性的虚拟电厂随机优化调度研究(Matlab代码实现)

&#x1f4a5; &#x1f4a5; &#x1f49e; &#x1f49e; 欢迎来到本博客 ❤️ ❤️ &#x1f4a5; &#x1f4a5; &#x1f3c6; 博主优势&#xff1a; &#x1f31e; &#x1f31e; &#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 …

Ubuntu16.04配置使用robosense雷达18版本的rsview软件记录

目录 依赖安装boost安装下载源码解压编译安装更新一下系统的动态链接库 libpng16-16安装 rsview运行下载运行具体操作可以看doc文件夹内的说明文件 参考文章 依赖安装 boost安装 下载源码 boost1.65官方下载地址 解压 进入下载文件所在的文件夹 tar -zxvf boost_1_65_1.t…

托福高频真词List05 // 附托福TPO阅读真题

目录 4月23日单词 生词 熟词 4月24日真题 4月23日单词 生词 sparsethinly distributedadj 稀疏的sparselythinlyadv 稀疏地congestion / kənˈdʒestʃən / overcrowdingn 拥挤continuallyregularlyadv 持续的eradicateeliminatev 消除facilitatemake easiereasev 使..…

M2下通过docker安装sqlserver

背景&#xff1a;要做这一个需求&#xff0c;将txt文件格式化以后&#xff0c;入库到sqlserver中&#xff0c;没有测试环境&#xff0c;只能自己在本地搭建一个sqlserver的服务器 前提&#xff1a;安装好docker 第一步&#xff1a;在终端下查找sqlserver的镜像文件 我们可以选…

S7-1200通过模拟量的方式实现PID控制恒压供水的具体方法示例

S7-1200通过模拟量的方式实现PID控制恒压供水的具体方法示例 具体方法和步骤可参考以下内容: 创建工艺对象,如下图所示,有2种方式: PID_Compact指令需要在OB30中断组织块中调用,如下图所示, 使用 PID 控制器前,需要对其进行组态设置,分为基本设置、过程值设置、高级设…