目录
SSH(Secure Shell)是一种安全通道协议,主要用来实现字符界面的远程登录、远程 复制等功能。SSH 协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令,SSH 为建立在应用层和传输层基础上的安全协议。对数据进行压缩,加快传输速度。
SSH客户端<--------------网络---------------->SSH服务端
优点:
数据传输是加密的,可以防止信息泄漏
数据传输是压缩的,可以提高传输速度
SSH客户端与服务端是通过网络来进行数据文件传输的,数据传输是加密的,可以防止信息泄露,(并不安全)数据传输是压缩的,可以提高传输速度。
Putty、 Xshell、CRT
OpenSSH是实现SSH协议的开源软件项目,适用于各种UNIX、Linux 操作系统。
Centos 7系统默认已安装openssh相关软件包,并将sshd 服务添加为开机自启动。
执行"systemctl start sshd" 命令即可启动sshd服务
sshd服务默认使用的是TCP的22端口,安全协议版本sshv2,出来2之外还有1(有漏洞)
sshd服务的默认配置文件是/etc/ssh/sshd_ config
ssh_ config和sshd_ config(服务端比较多) 都是ssh服务器的配置文件,二者区别在于前者是针对客户端的配置文件,后者则是针对服务端的配置文件。
ssh服务端主要包括两个服务功能ssh远程链接和sftp服务
远程管理linux系统基本上都要使用到ssh,原因很简单:telnet、FTP等传输方式是?以明文传送用户认证信息,本质上是不安全的,存在被网络窃听的危险。SSH(Secure Shell)目前较可靠,是专为远程登录会话和其他网络服务提供安全性的协议。利用SSH协议可以有效防止远程管理过程中的信息泄露问题,透过SSH可以对所有传输的数据进行加密,也能够防止DNS欺骗和IP欺骗。
vim /etc/ssh/sshd_config
客户端发起链接请求
服务端返回自己的公钥,以及一个会话ID(这一步客户端得到服务端公钥)
客户端生成密钥对
客户端用自己的公钥异或会话ID,计算出一个值Res,并用服务端的公钥加密
客户端发送加密值到服务端,服务端用私钥解密,得到Res
服务端用解密后的值Res异或会话ID,计算出客户端的公钥(这一步服务端得到客户端公钥)
最终:双方各自持有三个秘钥,分别为自己的一对公、私钥,以及对方的公钥,之后的所有通讯都会被加密
(1)对称加密 1、概念 采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,由于其速度快,对称性加密通常在消息发送方需要加密大量数据时使用
2、常用算法 在对称加密算法中常用的算法有:DES、3DES、TDEA、Blowfish、RC2、RC4、RC5、IDEA、SKIPJACK等。
3、特点 1、加密方和解密方使用同一个密钥; 2、加密解密的速度比较快,适合数据比较长时的使用; 3、密钥传输的过程不安全,且容易被破解,密钥管理也比较麻烦;
4、优缺点 对称加密算法的优点是算法公开、计算量小、加密速度快、加密效率高。 对称加密算法的缺点是在数据传送前,发送方和接收方必须商定好秘钥,然后使双方都能保存好秘钥。其次如果一方的秘钥被泄露,那么加密信息也就不安全了。另外,每对用户每次使用对称加密算法时,都需要使用其他人不知道的独一秘钥,这会使得收、发双方所拥有的钥匙数量巨大,密钥管理成为双方的负担
(2)非对称加密 1、概念 非对称加密算法需要两个密钥:公开密钥(publickey:简称公钥)和私有密钥(privatekey:简称私钥)。公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。
2、常用算法
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 可以使用更小的秘钥,更高的效率,提供更高的安全保障
3、原理 首先ssh通过加密算法在客户端产生密钥对(公钥和私钥),公钥发送给服务器端,自己保留私钥,如果要想连接到带有公钥的SSH服务器,客户端SSH软件就会向SSH服务器发出请求,请求用联机的用户密钥进行安全验证。SSH服务器收到请求之后,会先在该SSH服务器上连接的用户的家目录下
5、优缺点 相比于对称加密技术,非对称加密技术安全性更好,但性能更慢。
此本次实验中,我们用非对称加密算法ECDSA进行加密,为了方便用root用户,也可给其他普通用户配置
ssh [远程主机用户名]@[远程服务器主机名或IP地址] -p port
vim /etc/ssh/ssh_config
#修改客户端配置文件 无需验证,有安全隐患
vim /etc/ssh/sshd_config
22 Port 9527
#生产建议修改
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
文章浏览阅读2.1w次,点赞141次,收藏384次。运动规划是自动驾驶的核心理论和工程技术之一,本文作为教程先导,解析了运动规划的两大组件——路径规划和轨迹规划。欢迎感兴趣的同学订阅专栏!_motion planner c++
文章浏览阅读2.1k次。关联关系大体分三类:一对一,一对多和多对多。一对一 在实际项目中,几乎没有用不到一对一关系映射的,对一对一关系最好使用唯一主外键关联,即两张表使用外键关联关系,同时给外键列增加唯一约束。示例(公民和身份证)public class Card{//身份证类 private int id; private String code; _ssm中可以省去映射关系吗
文章浏览阅读93次。这里仍然以微博为例,接下来用Python来模拟这些Ajax请求,把我发过的微博爬取下来。1. 分析请求打开Ajax的XHR过滤器,然后一直滑动页面以加载新的微博内容。可以看到,会不断有Ajax请求发出。选定其中一个请求,分析它的参数信息。点击该请求,进入详情页面,如图6-11所示。图6-11 详情页面可以发现,这是一个GET类型的请求,请求链接为[https://m.weibo.cn/api/co...
文章浏览阅读6.9k次。在c_cpp_properties.json中,将"compilerPath"中的值修改为launch.json中的编译器路径。_环境变量“${env.include}”求值失败
文章浏览阅读2k次。进程间通信的基本概念进程间通信意味着两个不同进程间可以交换数据,但从上一章节我们知道,不同进程间内存是相互独立的,那么要实现不同进程间通信,就得有一个它们都能访问的公共区域内存做媒介,这个媒介不属于进程,而是和套接字一样,属于操作系统。所以,两个进程通过操作系统提供的内存空间进行通信,我们把这块内存空间称作管道。 创建管道函数 int pipe(int filedes[2]); 成功_tpc/ip 和进程通信
文章浏览阅读148次。Redis 会把整个 Lua 脚本作为一个整体执行,在执行的过程中不会被其他命令打断,从而保证了 Lua 脚本中操作的原子性。所以我们可以把读取,修改,写回,这三个步骤变成一个命令,单命令,再加上redis的互斥,就能保障并发控制了。为了实现并发访问的正确性,redis提供了两种方法,加锁和原子操作,但是由于加锁会降低redis的性能,所以推荐使用原子操作的方式。并发访问操作主要是对数据进行修改,分为读取,修改,写回这三步,如果不对其控制,会导致错误。比如INCR/DECR。_redis怎么实现原子操作
文章浏览阅读4.1k次。Python对应Opencv的重要常用函数 cv2.rectangle()、cv2.dnn.blobFromImage()、multiprocessing.Queue()、dlib.correlation_tracker()_cv2.rectangle
文章浏览阅读601次。GPUImage是一个非常棒的图像处理的开源库,里面提供了非常非常多的滤镜效果来加工图像。不过就是因为太多效果了,而且对于程序员来说,那么多效果并不清楚知道要用那一个。于是我就使用提供的默认值,加上对滤镜的命名的理解,粗略简单地对GPUImage.h里引用的各个滤镜进行简要说明。这样方便以后找到想要的滤镜效果。其中可能有理解错误,或者表达不准确的地方还请大家斧正。其中有些效果需要使用摄像头才..._gpuimagecgacolorspacefilter
文章浏览阅读104次。上一篇:《IDDD 实现领域驱动设计-架构之经典分层》阅读目录:SOA-面向服务架构REST 与 RESTful资源(Resources)状态(State)六边形架构DDD 的一大好处就是并不需要使用特定的架构,经典分层架构只是一种,由于核心域位于限界上下文中,我们可以使用多种风格的架构,既然如此,我们应该把眼界看的更宽广些,有意思的东西多着呢。SOA ..._六边形事件驱动
文章浏览阅读3.8k次。Mybatis的foreach使用_关于mybatis中foreach的用法
文章浏览阅读4k次,点赞3次,收藏22次。1. Tensorflow模型是什么?当你已经训练好一个神经网络之后,你想要保存它,用于以后的使用,部署到产品里面去。所以,Tensorflow模型是什么?Tensorflow模型主要包含网络的设计或者图(graph),和我们已经训练好的网络参数的值。分为三部分:data-00000-of-00001、index、meta;(*)meta file保存了graph结构,包括 Grap..._tensorflow pb restore
文章浏览阅读3.5k次,点赞3次,收藏24次。基于Biopython蛋白质数据获取与解析_获取蛋白质结构特征