SSH 的原理和实践
最近自己在学习使用SSH,现将自己理解的SSH原理和实践SSH的操作写成一篇博客,以供日后查看。
一、SSH是什么?为什么会出现SSH?
SSH英文全称是Secure Shell,即安全外壳。首先SSH是一个网络协议,用来在远程登录等远程操作管理中进行安全的数据传输的协议。我们早期使用的远程管理协议,包括ftp、telnet等都是使用明文在网络上传输数据,这样是很危险的,使用一些抓包工具就能截获这些数据。同时还可能会受到“中间人”攻击,中间人可以模仿服务器,接受客户端发来的数据,经过“中间人”的处理后再模拟客户端将数据发给真正的服务器。所有为了解决这个安全问题,提出了SSH协议,SSH协议本质上就是发送加密后的数据,提高安全性。SSH需要解决明文数据不安全和中间人攻击的问题。
SSH是一个协议,有很多实现,由于SSH不开源,我们一般使用OpenSSH。SSH也有几个版本,一般是SSH1和SSH2。
二、SSH的原理和具体过程
为了理解SSH,我们先要了解加密。加密一般分为对称加密和非对称加密。顾名思义,对称加密是指加密和解密所使用的方法是一样的;非对称加密中加密和解密的方法不一致。在非对称加密中,存在两组密钥,一个是公钥,一个是私钥。公钥用于加密,私钥用于解密。一般来说公钥是对外公布的,只有拥有私钥的用户才能获取真正的数据。
下面根据一个具体的SSH连接分析SSH的原理。
一般地,SSH用于客户端远程登录到远程主机。常见的SSH过程是服务端生成一对公钥和私钥,当客户端请求服务端时,服务端返回公钥给客户端,客户端之后使用公钥加密数据,然后传送给服务端,服务端使用自己的私钥解密数据,从而得到真正的数据,这样就算中间数据被截获,别人也不能破解数据。但是这个过程存在一个问题,如何保证客户端得到的公钥是真的服务端发送过来的?有可能是中间人发送的伪装的公钥,这样就会导致,中间人能够截获到用他的公钥加密的数据,从而能够破解。用于SSH的公钥和密钥都是由自己生成,并没有一个CA验证,只能通过客户端自己确认。为了解决这个问题,提出了两种解决方案:
1. 基于口令的验证
第一次使用SSH连接远程主机时,会提示你如下信息:

可以看到远程主机给我们提供了fingerprint,即服务端的公钥指纹,一般是生成公钥的MD5码,可能会放在某个网站上进行公示,表明这个某某主机的fingerprint,从而客户端据此确定连接的是不是目标远程主机,如果是则输入yes,然后在输入密码,之后这个远程主机就会加入到客户端的 .ssh/known_host 文件中。下次连接时,客户端就会跳过验证host阶段,只要要你输入密码,即可连接到远程主机上。
2. 基于公钥的验证
基于公钥的验证是指客户端将客户端的公钥文件发送到服务端的 .ssh/authorized_keys 文件中。之后客户端请求服务端,客户端会发送一个随机字符给服务端,服务端使用authorized_keys 即 客户端的公钥加密后,发送给客户端,客户端使用自己的私钥解密,再比较之前发送的字符串和解密后的字符串是否一致,如果一致,代表与之连接的服务端是真的服务端。之后连接就不需要输入密码,就可以和服务端建立连接了。

三、SSH实践
实现免密登录,即使用公钥验证。
首先服务端已经安装了ssh服务或者使用github等其他的现成服务。
1. 首先在客户端生成密钥,包含公钥和私钥
ssh-keygen –r rsa
-r 后面制定的是加密方式,我们使用的是rsa。执行完后会生成两个文件:.id_rsa 和 .id_rsa.pub
2. 将客户端的公钥 .id_rsa.pub 添加到服务端的 .ssh/authorized_keys 文件中
3. 之后重启服务端的ssh服务,既可以使用免密登录服务端或其他使用ssh的服务
ssh xxx@0.0.0.0
SSH 的原理和实践的更多相关文章
- 【Todo】ssh的原理和实践
有空的时候补充,可以参考 http://www.ruanyifeng.com/blog/2011/12/ssh_remote_login.html http://www.ruanyifeng.com/ ...
- 2018-2019-2 20165225『网络对抗技术』Exp2:后门原理与实践
2018-2019-2 20165225『网络对抗技术』Exp2:后门原理与实践 一.实验说明 任务一:使用netcat获取主机操作Shell,cron启动 (0.5分) 任务二:使用socat获取主 ...
- 2018-2019-2 20165312《网络攻防技术》Exp2 后门原理与实践
2018-2019-2 20165312<网络攻防技术>Exp2 后门原理与实践 课上知识点梳理总结 1.后门的概述 后门是指不经过正常认证流程而访问系统的通道 两个关键词:未认证.隐通道 ...
- 2018-2019-2 网络对抗技术 20165318 Exp2 后门原理与实践
2018-2019-2 网络对抗技术 20165318 Exp2 后门原理与实践 后门的基本概念及基础问题回答 常用后门工具 netcat Win获得Linux Shell Linux获得Win Sh ...
- Atitit 管理原理与实践attilax总结
Atitit 管理原理与实践attilax总结 1. 管理学分类1 2. 我要学的管理学科2 3. 管理学原理2 4. 管理心理学2 5. 现代管理理论与方法2 6. <领导科学与艺术4 7. ...
- Atitit.ide技术原理与实践attilax总结
Atitit.ide技术原理与实践attilax总结 1.1. 语法着色1 1.2. 智能提示1 1.3. 类成员outline..func list1 1.4. 类型推导(type inferenc ...
- Atitit.异步编程技术原理与实践attilax总结
Atitit.异步编程技术原理与实践attilax总结 1. 俩种实现模式 类库方式,以及语言方式,java futuretask ,c# await1 2. 事件(中断)机制1 3. Await 模 ...
- Atitit.软件兼容性原理与实践 v5 qa2.docx
Atitit.软件兼容性原理与实践 v5 qa2.docx 1. Keyword2 2. 提升兼容性的原则2 2.1. What 与how 分离2 2.2. 老人老办法,新人新办法,只新增,少修改 ...
- Atitit 表达式原理 语法分析 原理与实践 解析java的dsl 递归下降是现阶段主流的语法分析方法
Atitit 表达式原理 语法分析 原理与实践 解析java的dsl 递归下降是现阶段主流的语法分析方法 于是我们可以把上面的语法改写成如下形式:1 合并前缀1 语法分析有自上而下和自下而上两种分析 ...
随机推荐
- 关于时间API
如何正确处理时间 现实生活的世界里,时间是不断向前的,如果向前追溯时间的起点,可能是宇宙出生时,又或是宇宙出现之前, 但肯定是我们目前无法找到的,我们不知道现在距离时间原点的精确距离.所以我们要表示时 ...
- dp(买票优惠)
CodeForces - 1154F There are n shovels in the nearby shop. The i-th shovel costs ai bourles. Misha h ...
- SSM商城系统开发笔记-配置01-web.xml
先占坑 慢慢填, 商城系统使用主体框架:Spring + Spring MVC + Mybatis 其他框架: 日志: slf4j + logback <!DOCTYPE web-app PUB ...
- js超简单冒泡算法
点击按钮--从大到小排序,可以通过代码中大于号小于号的选择来判定从小到大或者从大到小. <!DOCTYPE html> <html> <head> <titl ...
- vue - 过滤器filter的基本使用
1.全局过滤器 输出: 过滤器可以多次来调用 输出: 2.私有过滤器 <!DOCTYPE html> <html lang="en"> <head&g ...
- 微信小程序倒计时实现功能
onLoad: function () { var that=this; this.data.intervarID= setInterval(function () { var ...
- MySQL第五天——日志
日志 log_error(错误日志) 用于记录 MySQL 运行过程中的错误信息,如,无法加载 MySQL数据库的数据文件,或权限不正确等都会被记录在此. 默认情况下,错误日志是开启的,且无法禁止. ...
- LinuxC语言实现服务端与客户端多进程通信
链接:https://pan.baidu.com/s/1YDNIyTKAkh4E5x2dBeTgcQ 提取码:y35q 复制这段内容后打开百度网盘手机App,操作更方便哦 本实验用的是Centos7m ...
- 【转】SPI FLASH与NOR FLASH的区别 详解SPI FLASH与NOR FLASH的不一样
转自:http://m.elecfans.com/article/778203.html 本文主要是关于SPI FLASH与NOR FLASH的相关介绍,并着重对SPI FLASH与NOR FLASH ...
- java并发学习第五章--线程中的锁
一.公平锁与非公平锁 线程所谓的公平,就是指的是线程是否按照锁的申请顺序来获取锁,如果是遵守顺序来获取,这就是个公平锁,反之为非公平锁. 非公平锁的优点在于吞吐量大,但是由于其不是遵循申请锁的顺序来获 ...