Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >什么叫SSH?看这一篇就够了!

什么叫SSH?看这一篇就够了!

作者头像
入门笔记
发布于 2022-06-03 02:08:42
发布于 2022-06-03 02:08:42
9530
举报
文章被收录于专栏:入门小站入门小站

来源:程序IT圈

SSH(Secure Shell,安全外壳)是一种网络安全协议,通过加密和认证机制实现安全的访问和文件传输等业务。传统远程登录或文件传输方式,例如Telnet、FTP,使用明文传输数据,存在很多的安全隐患。随着人们对网络安全的重视,这些方式已经慢慢不被接受。SSH协议通过对网络数据进行加密和验证,在不安全的网络环境中提供了安全的登录和其他安全网络服务。作为Telnet和其他不安全远程shell协议的安全替代方案,目前SSH协议已经被全世界广泛使用,大多数设备都支持SSH功能。

目录

  • SSH端口号是什么?
  • SSH是如何工作的?
  • 使用PuTTY和OpenSSHSSH密钥

SSH端口号是什么?

当SSH应用于STelnet,SFTP以及SCP时,使用的默认SSH端口都是22。当SSH应用于NETCONF时,可以指定SSH端口是22或者830。SSH端口支持修改,更改后当前所有的连接都会断开,SSH服务器开始侦听新的端口。

SSH是如何工作的?

SSH由服务器和客户端组成,在整个通信过程中,为建立安全的SSH通道,会经历如下几个阶段:

连接建立

SSH服务器在指定的端口侦听客户端的连接请求,在客户端向服务器发起连接请求后,双方建立一个TCP连接。

版本协商

SSH协议目前存在SSH1.X(SSH2.0之前的版本)和SSH2.0版本。SSH2.0协议相比SSH1.X协议来说,在结构上做了扩展,可以支持更多的认证方法和密钥交换方法,同时提高了服务能力。SSH服务器和客户端通过协商确定最终使用的SSH版本号。

算法协商

SSH支持多种加密算法,双方根据各自支持的算法,协商出最终用于产生会话密钥的密钥交换算法、用于数据信息加密的加密算法、用于进行数字签名和认证的公钥算法以及用于数据完整性保护的HMAC算法。

密钥交换

服务器和客户端通过密钥交换算法,动态生成共享的会话密钥和会话ID,建立加密通道。会话密钥主要用于后续数据传输的加密,会话ID用于在认证过程中标识该SSH连接。

用户认证

SSH客户端向服务器端发起认证请求,服务器端对客户端进行认证。SSH支持以下几种认证方式:

  • 密码(password)认证:客户端通过用户名和密码的方式进行认证,将加密后的用户名和密码发送给服务器,服务器解密后与本地保存的用户名和密码进行对比,并向客户端返回认证成功或失败的消息。
  • 密钥(publickey)认证:客户端通过用户名,公钥以及公钥算法等信息来与服务器进行认证。
  • password-publickey认证:指用户需要同时满足密码认证和密钥认证才能登录。
  • all认证:只要满足密码认证和密钥认证其中一种即可。
会话请求

认证通过后,SSH客户端向服务器端发送会话请求,请求服务器提供某种类型的服务,即请求与服务器建立相应的会话。

会话交互

会话建立后,SSH服务器端和客户端在该会话上进行数据信息的交互。

使用PuTTY和OpenSSH

PuTTY是Windows上经典的免费SSH连接工具,通常用于使用SSH协议远程登录设备,最新版本可以在PuTTY官网下载。

OpenSSH是SSH协议的开源实现,支持在Unix操作系统上运行,最新版本可以在OpenSSH官网下载。目前Windows10已经包含OpenSSH客户端和服务器软件,可在“设置—应用—应用与功能—可选功能”中搜索安装。

SSH密钥

对称加密和非对称加密

提高安全性的基本方式就是加密,加密算法通过密钥将明文转换为密文进行安全传输。SSH在工作过程中结合使用了对称加密非对称加密两种类型的算法,通过事先生成的SSH密钥来保证信息传输的安全性。两种加密算法的加解密过程见下图。

图片

对称加密算法

图片

非对称加密算法

对称加密算法使用同一个密钥对数据进行加密和解密。SSH连接建立过程中生成的会话密钥就是对称密钥,该对称密钥是由客户端和服务器端基于共享的部分信息和各自的私有数据使用密钥交换算法分别生成的。因为对称加密算法加解密的速度很快,所以适用于传输大量数据的场景。

非对称加密的发送和接收需要使用一对关联的SSH密钥,公钥和私钥。私钥由生成的一方自己保管,公钥可以发送给任何请求通信的其他人。发送方用收到的公钥对自己的通信内容进行加密,只有接收方可以使用私钥进行解密获取通信内容。非对称加密的私钥不需要暴露在网络中,安全性大大增加,但是加解密的速度比对称密钥慢得多。

SSH连接过程中的两个阶段使用了非对称加密。一个是在密钥交换阶段,服务器和客户端都生成了自己临时的公钥和私钥,用于计算出同一个用于后续加密通信内容的会话密钥。另外一个就是在用户认证阶段,利用只有匹配的私钥可以唯一解密公钥加密的内容这一特点,通过客户端的公钥私钥对验证客户端的身份。

密钥认证

SSH用户认证最基本的两种方式是密码认证和密钥认证。密码认证是将自己的用户名和密码发送给服务器进行认证,这种方式比较简单,且每次登录都需要输入用户名和密码。密钥认证使用公钥私钥对进行身份验证,实现安全的免密登录,是一种广泛使用且推荐的登录方式。密钥认证的基本原理是服务器端使用客户端的公钥对随机内容加密,客户端使用自己的私钥解密并发送给服务器以证实自己的身份,具体的过程见下图。

图片

SSH密钥认证登录流程

  • 在进行SSH连接之前,SSH客户端需要先生成自己的公钥私钥对,并将自己的公钥存放在SSH服务器上。
  • SSH客户端发送登录请求,SSH服务器就会根据请求中的用户名等信息在本地搜索客户端的公钥,并用这个公钥加密一个随机数发送给客户端。
  • 客户端使用自己的私钥对返回信息进行解密,并发送给服务器。
  • 服务器验证客户端解密的信息是否正确,如果正确则认证通过。
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-04-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 入门小站 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
一篇文章搞定密码学基础
密码技术是网络安全的基础,也是核心。现在对隐私保护、敏感信息尤其重视,所以不论是系统开发还是App开发,只要有网络通信,很多信息都需要进行加密,以防止被截取篡改,虽然很多人每天都在用密码学的知识,但并不是人人都知道,谨以此篇科普一下~~~ PS:2016.7.10 补充 散列函数与消息摘要 基本概念 明文M:原始数据,待加密的数据 密文C:对明文进行某种伪装或变换后的输出 密钥K:加密或解密中所使用的专门工具 加密E:用某种方法将明文变成密文的过程 解密D:将密文恢复成明文的过程 密码系统 一个密码
YungFan
2018/05/03
1.7K0
一篇文章搞定密码学基础
Https、SSL/TLS相关知识及wireShark抓包分析
在HTTP协议中,所有报文的发送、接收都是以明文的形式进行的。也就是说,在TCP/IP五层网络模型中,数据直接以明文的形式从应用层(HTTP)发送给传输层(TCP),之间没有任何加密过程,如下图所示:
lyb-geek
2022/03/10
2.8K0
Https、SSL/TLS相关知识及wireShark抓包分析
如果这样来理解HTTPS,一篇就够了!
可能有初学者会问,即时通讯应用的通信安全,不就是对Socket长连接进行SSL/TLS加密这些知识吗,干吗要理解HTTPS协议呢。
JackJiang
2018/08/23
7440
如果这样来理解HTTPS,一篇就够了!
HTTPS终于搞懂了
近些年来,越来越多的网站使用 HTTPS 协议进行数据传输,原因在于 HTTPS 相较于 HTTP 能够提供更加安全的服务。
捡田螺的小男孩
2023/02/22
1.1K0
HTTPS终于搞懂了
了解 HTTP 看这一篇就够
作者:yutingbai,腾讯 PCG 前端开发工程师 1. http的发展史 在学习网络之前,了解它的历史能够帮助我们明白为何它会发展为如今这个样子,引发探究网络的兴趣。下面的这张图片就展示了“互联网”诞生至今的发展历程。 2. http是什么? HyperTextTransferProtocol 直译为‘超文本传输协议' 超文本:指文字、图片、视频、音频等的混合体,比如最熟悉的html。 传输:http是一个“双向协议”,传输的是请求方和响应方之间的数据,不限制请求方和响应方之间的角色,传递的过程中可
腾讯技术工程官方号
2022/08/26
1.2K1
了解 HTTP 看这一篇就够
了解SSH加密和连接过程【官方推荐教程】
SSH或安全shell是一种安全协议,是安全管理远程服务器的最常用方法。使用多种加密技术,SSH提供了一种机制,用于在双方之间建立加密安全连接,向另一方验证每一方,以及来回传递命令和输出。
Jean
2019/05/23
3.1K0
了解SSH加密和连接过程【官方推荐教程】
SSH的工作原理
SSH简介 传统的网络服务程序,比如FTP,POP,Telnet,本质上都是不安全的,因为它们在网络上用明文传送数据、用户账号和用户口令,很容易受到中间人攻击方式的攻击,攻击者会冒充真正的服务器接收用户传给服务器的数据,然后再冒充用户把数据传给真正的服务器。 为了满足安全性的需求,IETF的网络工作小组制定了Secure Shell(缩写为SSH),这是一项创建在应用层和传输层基础上的安全协议,为计算机上的Shell提供安全的传输和使用环境。 SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协
大蟒传奇
2018/06/20
1.5K0
SSH初认识:了解加密、端口和连接
SSH(即安全外壳协议)是一种远程管理协议,允许用户通过 Internet 访问、控制和修改其远程服务器。SSH 服务是作为未加密 Telnet 的安全替代品而创建的,并使用加密技术来确保与远程服务器之间的所有通信都以加密方式进行。它提供了一种对远程用户进行身份验证、将输入从客户端传输到主机以及将输出中继回客户端的机制。
Lemon黄
2023/11/23
2.3K0
SSH初认识:了解加密、端口和连接
几幅图,拿下 HTTPS
我很早之前写过一篇关于 HTTP 和 HTTPS 的文章,但对于 HTTPS 介绍还不够详细,只讲了比较基础的部分,所以这次我们再来深入一下 HTTPS,用实战抓包的方式,带大家再来窥探一次 HTTPS。
小林coding
2021/01/12
7430
几幅图,拿下  HTTPS
一文彻底搞懂 HTTPS 的工作原理!
当你打开浏览器,访问某个网站,如果网址旁有个小锁,代表访问的网址是安全的,反之不安全。当我们没有看到那个小锁的小图标的时候,需要提高警惕,不要随意输入个人重要的资料。所有的银行和支付相关的网站都是100%使用HTTPS的。
杰哥的IT之旅
2020/06/18
4.1K0
一文彻底搞懂 HTTPS 的工作原理!
HTTP和HTTPS的区别,看完后随便吊打面试官
下面我们来一起学习一下 HTTPS ,首先问你一个问题,为什么有了 HTTP 之后,还需要有 HTTPS ?我突然有个想法,为什么我们面试的时候需要回答标准答案呢?为什么我们不说出我们自己的想法和见解,却要记住一些所谓的标准回答呢?技术还有正确与否吗?
淘课之家
2020/03/15
3.7K1
HTTP和HTTPS的区别,看完后随便吊打面试官
HTTP详解(1)-工作原理
HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。
黄规速
2022/04/14
1.6K0
HTTP详解(1)-工作原理
HTTP与HTTPS的区别,详细介绍[通俗易懂]
超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。
全栈程序员站长
2022/07/01
5K0
HTTP与HTTPS的区别,详细介绍[通俗易懂]
透视HTTPS建造固若金汤的城堡
为什么有 HTTPS?因为 HTTP 不安全! 现在的互联网已经不再是 “田园时代”,“黑暗森林” 已经到来。上网的记录会被轻易截获,网站是否真实也无法验证,黑客可以伪装成银行网站,盗取真实姓名、密码、银行卡等敏感信息,威胁人身安全和财产安全。
Bug开发工程师
2020/09/22
5220
透视HTTPS建造固若金汤的城堡
SSH基于用户名密码的认证原理
哈喽,大家好呀!这里是码农后端。今天来聊一聊什么是SSH以及SSH基于用户名密码的认证原理。
reload
2024/07/03
5000
SSH基于用户名密码的认证原理
SSH 工作原理
SSH 全称(Secure Shell),是一项创建在应用层和传输层基础上的安全协议,为计算机上的Shell(壳层)提供安全的传输和使用环境。
运维部落
2020/05/28
2.1K0
【HTTP】HTTPS TLS 1.2
在个人过去的读书笔记中已经介绍过一次,在这一篇文章中介绍了HTTP1.1的缺点,以及SSL、TLS的历史,之后介绍了有关SSL加密的主要加密方案:公开密钥加密 和 共享密钥加密,最后简单介绍了HTTPS的交互过程,但是书中的过程比较粗,这节我们讲细一点点。
阿东
2022/09/12
1.3K0
Nginx(3)-创建 https 站点
使用对称加密,交易双方都使用同样钥匙,安全性得不到保证;每对用户每次使用对称加密算法时,都需要使用其他人不知道的惟一钥匙,这会使得发收信双方所拥有的钥匙数量呈几何级数增长,密钥管理成为用户的负担。对称加密算法在分布式网络系统上使用较为困难,主要是因为密钥管理困难,使用成本较高。
懒人的小脑
2019/03/19
1.2K0
Nginx(3)-创建 https 站点
车联网通信安全之 SSL/TLS 协议
在汽车出行愈加智能化的今天,我们可以实现手机远程操控车辆解锁、启动通风、查看车辆周围影像,也可以通过 OTA(空中下载技术)完成升级车机固件、更新地图包等操作,自动驾驶技术更是可以让车辆根据路面状况自动辅助实施转向、加速和制动。
EMQ映云科技
2022/07/04
1.5K0
车联网通信安全之 SSL/TLS 协议
由SecureCRT引发的思考和学习
[由于业务需要,最近在云上新购买了一批centos7.0的服务器,用脚本批量添加了用户(脚本请见我之前的博客/秘钥认证用户自动控制:]](http://my.oschina.net/pwd/blog/388254)[),加完秘钥之后发现,但是secureCRT抛出了一下异常。]
明哥的运维笔记
2019/01/30
1.2K0
相关推荐
一篇文章搞定密码学基础
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档