首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >每日一个计算机小知识:SSH

每日一个计算机小知识:SSH

作者头像
人人都是码农
发布2025-11-26 12:11:54
发布2025-11-26 12:11:54
210
举报

每日分享一个有趣的计算机小知识,今日话题:SSH

-start-

SSH是Secure Shell的缩写,安全外壳协议,是一种基于TCP的加密网络传输协议。常用于远程登录、远程命令执行、文件加密传输、端口转发等,解决明文传输信息泄露、篡改的痛点,位于OSI网络模型中的应用层。

1995年,由芬兰知名计算机专家塔图·于勒宁Tatu Ylönen开发,当年其所在的赫尔辛基理工大学发生密码嗅探攻击事件,促使他开发了SSH协议首个版本,以此来解决当时远程登录和数据明文传输的安全漏洞。

1999年,和1.0版本完全不兼容的SSH 2.0成为正式标准(RFC 4250-4256),修复了1.0版本中存在的算法、认证、代码实现和架构等多个层面的安全漏和缺陷。同年OpenSSH成为SSH协议最主流的开源实现,被Linux、Unix、Windows等系统广泛内置。

在没有SSH协议之前如Telnet、FTP、POP等通信协议在网络上都是明文传输口令和数据,别有用心的人就很容易截获传输的数据, 进行“中间人攻击”(man-in-the-middle,冒充目标服务器接收你的数据,然后再冒充你把数据传给真正的服务器)。

SSH协议通信主要流程:

1.安装配置

SSH采用 CS(客户端/服务端)架构,SSH客户端发起连接请求、提供用户认证凭证(密码/密钥)、加密本地数据、解密服务端响应。SSH服务端监听指定端口(默认 22)、验证客户端身份、协商加密算法、加密服务端数据、响应客户端命令。

Linux主流发行版通常内置了OpenSSH的客户端和服务端,但最小化安装的系统可能缺失服务端。客户端可直接用ssh命令,服务端需手动执行启动命令(如sudo systemctl start sshd),若未预装则需自行安装。

MacOS默认内置了SSH客户端和服务端,客户端打开终端就能用,服务端默认关闭,需手动开启“系统设置”里的“远程登录”功能,开启后其他设备就能SSH连接这台Mac。

Windows 10 1809及后续版本内置了OpenSSH客户端和服务端,客户端在Win11中多默认启用,Win10常需手动开启,服务端则均需在“可选功能”中手动添加启用,旧版Windows则无内置SSH服务端,需装PuTTY、Xshell等第三方工具。

2.准备阶段

服务器端默认监听22端口,生成长期密钥对(客户端首次连接服务器时,服务器会自动把生成的公钥发送给客户端,核心作用就是用来认证服务器身份防止假冒),并配置认证规则(允许密码/密钥对登录)。客户端发起连接请求(如:ssh user@服务器IP),指定目标端口和登录用户名。

3.建立连接

客户端与服务器通过SYN、SYN+ACK、ACK包交互,也就是我们常说的三次握手,建立TCP连接。

4.握手协商

双方确认兼容的SSH版本与算法组合,客户端验证服务器的公钥合法性后,双方协商好加密算法(比如用什么方式加密数据),生成会话密钥(临时钥匙,只用于本次连接)。

5.身份认证

认证方式主要有密码认证和密钥对认证这两种,密码认证就是客户端输入服务器账号密码,密码会用协商好的密钥加密后传输,简单但易被暴力破解。密钥对认证需提前生成公钥和私钥(公钥存服务器上,私钥存在客户端),服务器用公钥验证客户端的私钥,匹配成功就无需输密码,相对更安全。

6.加密通信

双方用会话密钥加密传输所有数据,附加MAC校验值,确保数据安全和完整,就算别人截获你的数据也无法解密。

7.关闭连接

痛过TCP四次挥手,客户端发起关闭请求,服务器确认后,双方销毁会话密钥并关闭TCP连接。

实际开发中像我们远程登录服务器、用git拉取代码、本地编辑器远程开发等都离不开SSH协议的身影。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-11-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 秘密菜单 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档