转载。 https://blog.csdn.net/cjx529377/article/details/77659199

SSH全称是Secure ShellSSH协议是基于应用层的协议为远程登录会话和其他网络服务提供安全性的协议

SSH使用最多的是远程登录和传输文件,实现此功能的传统协议都不安全(ftp,telnet等),因为它们使用明文传输数据。而SSH在传输过程中的数据是加密的,安全性更高。

 
工作原理 
SSH协议是基于非对称加密方法的,服务器和客户端都会生成自己的公钥和私钥。 
(1) 服务器建立公钥。若远程服务器是新系统,会在/etc/ssh目录下生成一个名为ssh_host_ecdsa_key.pub的公钥,同时生成一个名为ssh_host_ecdsa_key的私钥,这一对就是远程服务器的公钥与私钥。之后每回启动sshd服务的时候,系统会自动在此路径下查找公钥。 
远程服务器的公钥: 
 
(2) 客户端请求连接。linux或者mac系统可以直接通过自带的shell连接,指令为ssh user@host,如果客户端和服务器是相同的用户,则可以省去user,直接使用ssh host。 
(3) 服务器发送公钥给客户端。服务器接到请求后,把公钥传给客户端使用。 
(4) 客户端记录服务器公钥并计算自己的公私钥。客户端将服务器传来的公钥记录在~/.ssh/known_hosts中,若是已经记录有该服务器公钥,则比对是否一致,一致后就计算客户端自己的公私钥。 
客户端保存的服务器公钥: 
 
(5) 客户端发送自己的公钥给服务器。客户端将自己的公钥发送给服务器,这样服务器端就有客户端公钥+服务器自己私钥,客户端就有服务器公钥+客户端自己私钥,组成了非对称加密系统。 
(6) 开始双向加解密。服务器发送数据:用客户端公钥加密,客户端收到数据后用自己私钥解密客户端发送数据:用服务器公钥加密,服务器收到数据后用自己私钥解密。 

工作过程 
(1) 版本号协商阶段,SSH目前包括 SSH1和SSH2两个版本, 双方通过版本协商确定使用的版本 
(2) 密钥和算法协商阶段,SSH支持多种加密算法, 双方根据本端和对端支持的算法,协商出最终使用的算法 
(3) 认证阶段,SSH客户端向服务器端发起认证请求, 服务器端对客户端进行认证 
(4) 会话请求阶段, 认证通过后,客户端向服务器端发送会话请求 
(5) 交互会话阶段 ,会话请求通过后,服务器端和客户端进行信息的交互 
认证方式 
认证方式主要有两种:密码认证和公钥认证。 
密码认证:输入账号密码进行认证。 
公钥认证:需要客户端生成一对公私钥,使用ssh-keygen生成,保存在~/.ssh路径下,然后使用指令ssh-copy-id user@host传到服务器端,以后再登录认证的时候,客户端自动发送公钥给服务器,服务对比一致则通过认证,不要繁琐地输入密码了。 
客户端生成的登录公钥: 
 
服务器端接收的客户端登录公钥: 
 
这一篇文章主要记录ssh协议的工作原理及过程,接下来还会写一篇ssh协议涉及的安全威胁及解决办法。

欢迎关注微信公众号:shoshana

SSH协议(1)-工作原理及过程的更多相关文章

  1. SPI协议及工作原理分析

    说明.文章摘自:SPI协议及其工作原理分析 http://blog.csdn.net/skyflying2012/article/details/11710801 一.概述. SPI, Serial ...

  2. TCP协议通讯工作原理

    TCP协议通讯工作原理   一.TCP三次握手 传输控制协议(Transport Control Protocol)是一种面向连接的,可靠的传输层协议.面向连接是指一次正常的TCP传输需要通过在TCP ...

  3. @清晰掉 spi协议及工作原理分析

    说明.文章摘自:SPI协议及其工作原理浅析 http://bbs.chinaunix.net/thread-1916003-1-1.html 一.概述. SPI, Serial Perripheral ...

  4. 网络数据传输安全及SSH与HTTPS工作原理

    本节内容 网络数据传输安全概述 数据加密算法分类 SSH工作原理 HTTPS工作原理 参考资料 个人一直在努力推动git在公司内部的普及和使用,前些日子在公司内部做了一次分享课,给大家介绍了下项目发布 ...

  5. FTP协议及工作原理

    1. FTP协议 什么是FTP呢?FTP 是 TCP/IP 协议组中的协议之一,是英文File Transfer Protocol的缩写. 该协议是Internet文件传送的基础,它由一系列规格说明文 ...

  6. FTP协议及工作原理详解

    1. FTP协议 什么是FTP呢?FTP 是 TCP/IP 协议组中的协议之一,是英文File Transfer Protocol的缩写. 该协议是Internet文件传送的基础,它由一系列规格说明文 ...

  7. ssh框架的工作原理

    struts2的工作原理 1 客户端初始化一个指向Servlet容器(例如Tomcat)的请求 2 这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextClea ...

  8. SPI协议及其工作原理浅析

    转载自:http://bbs.chinaunix.net/thread-1916003-1-1.html一.概述. SPI, Serial Perripheral Interface, 串行外围设备接 ...

  9. SPI协议及其工作原理浅析【转】

    转自:http://www.laoliu-soft.net/category/tech_chap/tech_linux/ 一.概述. SPI, Serial Perripheral Interface ...

随机推荐

  1. linux经常用的命令

    常用 安装包   centos   yum    /   Ubuntu  Debian  apt-get clear :清空终端       [cmd 下是cls] vi/vim  编辑器    详情 ...

  2. Java基础系列 - equals和==的区别

    package com.test7; public class test7 { public static void main(String[] args) { /** * 1.equals()比较的 ...

  3. slax自启动程序

    Fluxbox 本身提供了自启动程序的功能.~/.fluxbox/startup 文件是一个像启动 Fluxbox 一样自启动应用程序的脚本.# 标记是注释. 一个简单的例子: #!/bin/sh # ...

  4. "error":"bucket is protected"

    这个是我做图片上传的时候,后台返回了图片,把图片链接放到浏览器 其实是因为后台配置了,图片必须以 结尾.就是压缩的图,所以其他格式结尾的是不会显示的哈

  5. 认识wsgi

    WSGI是什么? WSGI,全称 Web Server Gateway Interface,或者 Python Web Server Gateway Interface ,是为 Python 语言定义 ...

  6. 20165223《网络对抗技术》Exp 8 Web基础

    目录 -- Web基础 实践说明 实践目标 基础问答 实践内容 Web前端:HTML Web前端:JavaScript Web后端:MySQL Web后端:PHP SQL注入,XSS攻击测试 实验遇到 ...

  7. 基于golang的websocket通信实现

    代码: https://gitee.com/knox_xzk/websocket

  8. Vue引入远程JS文件

    问题 最近在使用 Vue 做东西,用到钉钉扫描登录的功能,这里需要引入远程的 js 文件,因为 Vue 的方式跟之前的不太一样,又不想把文件下载到本地应用,找了一下解决的方法,貌似都需要引入第三方的库 ...

  9. linux内核是如何支持深度睡眠(deep sleep)方式的?

    1. 硬件架构 arm64 2. 内核版本 4.19 3. 分析相关函数 setup_arch() -> psci_dt_init() -> psci_0_2_init() -> g ...

  10. <JavaScript>constructor、prototype、__proto__和原型链

    在看了网上很多相关的文章,很多都是懵逼看完,并不是说各位前辈们写得不好,而是说实在不容易在一两次阅读中理解透.我在阅读了一些文章后,自己整理总结和绘制了一些相关的图,个人认为会更容易接受和理解,所以分 ...