SSH协议详解

简介

SSH只是一个协议,基于这个协议有不同的实现,这些实现中有开源,也有收费。

原理

普通网络通信一般是明文通信,数据容易被中间人拦截并且解析,而SSH协议则提供了基于内容加密服务。

流程:

第一种:口令验证登陆

        (1)客户端向远程主机发起登陆链接请求。

        (2)远程主机收到用户的登录连接请求,然后把自己的公钥发给客户端。

        (3)客户端收到这个公钥,并使用这个公钥,将登录密码加密后,发送到远程主机。

        (4)远程主机用自己的私钥,解密登录密码,并验证该密码与当前要登陆的用户密码是否匹配,匹配就同意用户登录。

        缺陷:口令验证,主动权在客户端,真正的远程主机可能会被拦截掉,客户端访问的可能是伪装的远程主机,此时客户端收到的密钥是伪装机的,客户端发送加密后的密码后,会被伪装机通过私钥解密,此时伪装机就获取到了真实远程主机的账密,那么真实远程主机的安全就受到了严重威胁。

        

第二种:密钥验证登陆

        前提:客户端在本地生成非对称密钥(公钥、私钥)。并且将公钥放到了远程主机的.ssh/authorized_keys文件中。

        (1)客户端向远程主机发起登陆连接请求,附带信息

                备注:网上对于附带信息,我目前看到两个版本,一个是:ip,用户名;一个是:公钥信息。对于第一种,我是肯定不赞同,客户端物理位置不定,Ip会变,而且公钥信息中根本没有IP,用户名等信息,所以用IP和用户名在远程主机中定位公钥肯定不行;第二版本我比较赞同,但是目前还有待验证。

        (2)远程主机根据附带的信息定位到客户端对应的公钥,然后生成一个随机串并用该公钥加密,然后将生成的加密串发送给客户端。

        (3)客户端收到远程主机送来的加密串,然后用自己的私钥解密,再将解密后的字符串送给远程主机。

        (4)远程主机接收到解密后的字符串,然后跟自己最初生成的字符串作比较,一样则校验成功,允许与客户端建立登陆链接。

        

登陆命令行
ssh -p port user@host
user表示远程服务的登录用户名,host表示远程ip ,port表示远程服务的端口号(默认为22,可省略)
---------------------
作者:Mote_
来源:CSDN
原文:https://blog.csdn.net/dreamwbt/article/details/80280557
版权声明:本文为博主原创文章,转载请附上博文链接!

转载于:https://www.cnblogs.com/ricksteves/p/10263440.html

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

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

相关文章

怎么通过media foundation将图像数据写入虚拟摄像头_千倍成本压缩!特斯拉开发虚拟激光雷达,替代最贵自动驾驶传感器...

「谁用激光雷达,谁完蛋!」在去年特斯拉举办的 Autonomy Day 上,特斯拉 CEO Elon Musk 言辞激烈地炮轰激光雷达。「昂贵的传感器是不必要的,这就像是一大堆昂贵的附属品。」「像阑尾一样。一个阑尾不好——那么,一大堆阑…

JBoss Fuse 6.1 + HawtIO第一部分

它是开源的! JBoss Fuse是开源ESB ,是Red Hat收购FuseSource之后Fuse ESB的发展。 它是开源的 , Apache v2许可的 , 并由Red Hat完全支持 。 最好的部分之一是,您可以免费下载并使用它,并且在生产或订阅中支…

html5新增的js api,对HTML5新增JS Api的思考

1.为什么javascript的变量名不使用css中的命名方法,而选择使用驼峰命名法因为在javascript中“-”表示减法,所以如果使用“-”的话会出现不必要的问题。2.在javascript中已经有className方法添加类名,为什么还要新增加classList.add方法因为c…

什么是URL转发和一个IP建多个Web站点--主机头名法

什么是URL转发? 所谓 URL 转发,是中企资源对在中企资源注册的域名,所提供的一项特别的域名增值服务,此服务是通过中企资源服务器的特殊技术设置,实现当访问您的域名时,将会自动跳转到您所指定的另一个网络地…

eval()

eval() 接收一个字符串,这个字符串必须是一个表达式,然后执行并返回表达式的值 In [6]: x 7In [7]: eval(3 x) Out[7]: 10 In [8]: eval(pow(2, 3)) Out[8]: 8 In [9]: eval(2 3) Out[9]: 5 转载于:https://www.cnblogs.com/pzk7788/p/10264105.h…

ajax html页面传参数,jQuery AJAX:如何将大型HTML标记作为参数传递?

如何使用jQuery AJAX将大型HTML标记数据传递给我的PHP?当我收到结果时,这是错误的。jQuery AJAX代码:$(#saveButton).click(function() {// do AJAX and store tree structure to a PHP array//(to be saved later in database)var treeInner…

使用Drools 6.0进行部署

KieScanner 6.0 KieScanner取代了5.x KnowledgeAgent。 它使用嵌入式Maven允许在运行时解析和检索jar。 6.0应用程序现在可以轻松支持依赖关系和可传递依赖关系; 使用众所周知的Maven语义进行版本控制。 它允许在类路径上进行部署,也可以在运行时动态进行…

activemq安装与配置_ActiveMQ(消息队列)从入门到了解

一、 ActiveMQ 简介 1 什么是 ActiveMQ ActiveMQ 是 Apache 出品,最流行的,能力强劲的开源消息总线。ActiveMQ 是一个 完全支持 JMS1.1 和 J2EE 1.4 规范的 JMS Provider 实现,尽管 JMS 规范出台已经是很久 的事情了,但是 JMS 在当…

httpHandlers和httpModules接口介绍 (5)

IHttpHandler工厂 class TestHandlerFactory : IHttpHandlerFactory{public IHttpHandler GetHandler(HttpContext context, string requestType, string url, string pathTranslated){string fname url.Substring(url.IndexOf(/) 1);while (fname.IndexOf(/) ! -1)fname …

P4336 [SHOI2016]黑暗前的幻想乡

题目 P4336 [SHOI2016]黑暗前的幻想乡 做法 每种颜色恰好一条边,有点难处理啊 根据套路,数据范围这么小,容斥一下所有的情况就可以了 对每种颜色进行状压,表这次只能选这些颜色,做\(n-1\)的时候会加上多余的东西&#…

智联招聘简历如何导出html,如何将拉勾网(智联招聘)的预览简历导出来

最近在整理简历的时候发现拉勾网/智联招聘上面的预览简历是那么简洁漂亮,可是当我想把他导到本地,发pdf文件给企业时却只能是word,那么的难看,摸索了一会儿找到了一种比较好的方法可以得到预览的简历。1.另存为html文件在这里插入…

Java反编译器的剖析

简单地说,反编译器尝试将源代码转换为目标代码。 但是有很多有趣的复杂性-Java源代码是结构化的; 字节码当然不是。 而且,转换不是一对一的:两个不同的Java程序可能会产生相同的字节码。 我们需要应用启发式方法,以合理…

Mybatis注解开发模糊查询

Mybatis注解开发模糊查询 一般在使用mybatis时都是采用xml文件保存sql语句 这篇文章讲一下在使用mybatis的注解开发时,如何进行模糊查询 模糊查询语句写法(在Select注解中): where field like CONCAT(%,#{keyWord},%) 下面是一些错…

JS中深浅拷贝 函数封装代码

一、了解 基本数据类型保存在栈内存中,按值访问,引用数据类型保存在堆内存中,按址访问。 二、浅拷贝 浅拷贝只是复制了指向某个对象的指针,而不是复制对象本身,新旧对象其实是同一内存地址的数据,修改其中…

iOS开发之Masonry框架-使用方法须知

目录 常用的属性与常量Masonry使用注意约束的优先级Masonry添加约束的方法修改约束在哪创建我的约束创建约束技巧:Masonry是一个轻量级的布局框架,它拥有自己的描述语法(采用更优雅的链式语法封装)来自动布局,具有很好…

wps单机无网络版_单平台销量破百万,这个国产单机系列要出网游,还要上主机...

他们想做"国际顶级的单机游戏开发商"。文/彭子诚作为一款国产单机游戏,《古剑奇谭三》在去年年底上市后,至今在 Steam 上依然保持着 83% 的好评率。大量的玩家对于游戏内容给出了认可,“用心”这个词是最高频出现的词语。Wegame 官…

JavaFX 8的弹出式编辑器

在过去的几个月中,我很高兴与JavaFX 8一起使用,以便为计划和调度应用程序实现复杂的用户界面。 所需的功能之一是执行“就地”编辑的方法,即快速编辑用户选择对象的某些基本属性的方法。 遵循“如果您无法创新,就模仿”的原则&am…

body onload 控制窗口大小 html,如何实现在调整浏览器窗口大小时缩放的网页?

感谢所有的建议!看起来我必须做的丑陋的东西是必要的。以下工作(在我的机器上,无论如何)在IE和FireFox中。我稍后可以为CodeProject.com制作一篇文章; - )这个javascript进入< head>部分:var tmout null;var mu…

【Mac命令行学习】(持续更新)

常用命令: 一、修改环境变量文件: 1、进入文件:vi .bash_profile 2、键盘点击【a】键,进入文件编辑 3、修改完成后,如果是vi,点击【esc】键退出编辑模式 4、输入以下命令进行具体操作: :wq 保存…

flex实现水平居中和两栏布局

<!DOCTYPE html> <html xmlns"http://www.w3.org/1999/xhtml"> <head> <meta http-equiv"Content-Type" content"text/html; charsetutf-8"/><title>水平垂直的实现</title><style>.wrapper{width:25…