什么是 SSH?理解 SSH 及其加密技术

远程连接服务器这件事,在没有加密的年代风险极高。用户名、密码、每一条执行的命令,全部明文跑在网络上,同一局域网里的人抓个包就能看清楚。Telnet 和 Rlogin 就是那时候的主流工具,凑合能用,但毫无保护可言。

1995年,芬兰计算机科学家 Tatu Ylönen 在自己的大学网络里遇到了一次密码嗅探攻击,随后开发出了 SSH。目标就一个:让远程连接变得真正安全。

SSH连接是怎么建立的

SSH 走的是客户端-服务器模型。客户端发起连接,双方先谈好用哪套加密算法,完成身份验证之后,建立起一条加密隧道。后续所有通信都在这条隧道里走——命令、回显、文件,一概如此。外面的人就算截到了数据包,也只是一堆乱码。

加密这块,SSH 同时用了两套机制。

握手阶段走非对称加密。服务器上存着你的公钥,你本地持有私钥。连接时服务器用公钥做验证,只有拿着对应私钥的客户端才能通过。密码全程没有在网络上出现过。

隧道建立之后切换成对称加密。双方共用一个会话密钥,每次连接单独生成,负责加解密后续所有传输内容。对称加密比非对称轻得多,这个切换在安全和性能上都说得通。

数据完整性靠哈希校验来保证。每段数据发出去的时候都带着一个哈希值,对方收到后拿来比对,不一致就说明数据在途中被动过,连接直接断掉。

什么是 SSH
什么是 SSH?

密码登录 vs 密钥登录

初次用 SSH,大多数人图省事走密码登录。填用户名、填密码,直觉上没毛病。但密码的问题在于,长度和复杂度都有上限,面对自动化爆破脚本的持续轰炸,只要时间够,迟早有被撞上的可能。

密钥认证把这条路堵死了,RSA 或 ED25519 密钥的长度和随机性根本不是手打密码能比的,暴力破解在计算上不现实。私钥还可以加 passphrase,万一密钥文件泄露,攻击者也进不去。

生产服务器建议直接在 /etc/ssh/sshd_config 里关掉密码登录:

PasswordAuthentication no
PermitRootLogin no

root 登录一并禁掉。攻击者通常第一个试的就是 root,禁掉之后他们还得先猜一个有效的普通账户,凭空多了一道门槛。

默认的 22 端口也可以改。改端口算不上安全手段,但能明显减少自动化扫描的骚扰,日志里少很多噪音。

SSH日常用途

登录云主机、执行运维命令、排查线上问题,这是 SSH 最日常的用途。对运维来说基本上开电脑第一件事就是开终端连服务器。

文件传输的话,SFTP 和 SCP 都跑在 SSH 上,全程加密,比裸 FTP 安全太多,敏感文件、配置、备份走这条路是标准做法。

代码部署这块,Git 原生支持 SSH 协议推拉代码。CI/CD 流程里部署脚本用密钥免密登录目标机器,自动跑完整个发布流程,配置里不需要硬写任何密码。

端口转发和隧道用的人相对少,但很好使。把本地端口映射到远程服务、把内网服务拉到本地访问、给不支持加密的协议套一层隧道,这些在受限网络或者内网穿透场景里经常用到。

加固的时候容易漏掉什么

SSH 协议本身这么多年下来没什么大问题,出事基本都是配置没收紧。

防火墙限制来源 IP 是最直接的办法。运维机器 IP 固定的话做个白名单,其他 IP 连握手都走不到,扫描和爆破在网络层就被挡掉了。

Fail2Ban 可以作为补充。它盯着登录失败记录,超过阈值自动封 IP,对付那种低频慢速爆破比较有效,和防火墙配合起来覆盖面更全。

服务端版本更新也容易被忽视。旧版本的漏洞在公开漏洞库里基本都能查到利用方式,更新本身不费什么事,但能堵住一批已知攻击手段。

以上几点做到位之后,针对 SSH 的常见攻击基本没有切入点。剩下的隐患通常来自私钥管理混乱或者内部操作失误,那就不是协议层能解决的事了。

常见问题

SSH 使用哪个端口?

默认情况下,SSH 使用端口 22 进行安全远程连接。虽然这是标准端口,但可以更改为自定义端口,以减少自动攻击的风险并提升安全性。

SSH 完全安全吗?

SSH 被认为高度安全,因为它采用强加密、认证和数据完整性检查。然而,其安全性依赖于正确的配置、定期更新以及遵守最佳实践规则,比如使用 SSH 密钥代替密码。

SSH 会被黑客攻击吗?

Secure Shell 本身非常难以攻破,但配置不当的服务器可能存在漏洞。弱密码、过时的软件或开放的 root 权限会使攻击者更容易攻击 SSH 目标,这也是安全加固至关重要的原因。

哪些操作系统支持 Secure Shell?

SSH 支持所有主要操作系统,包括 Linux、macOS 和 Windows。大多数基于 Unix 的系统默认支持 SSH,而 Windows 则通过内置工具或第三方客户端支持 SSH。

为什么 SSH 比老式远程访问协议更受欢迎?

SSH 取代了旧协议如 Telnet,因为它加密所有通信。这防止了攻击者拦截凭证或数据,使 SSH 在现代远程访问和服务器管理中更加安全。

原创文章,作者:余初云,如若转载,请注明出处:https://blog.jidcy.com/jsjc/2416.html

Like (1)
Previous 2026年4月13日 下午3:13
Next 2026年4月14日 上午11:06

相关推荐

  • 异步api是什么?与REST API的区别

    当今用户对实时信息的需求日益强烈,股价、列车时刻等数据都需要在发生的第一时间送达。如何实时推送这些关键信息,是每家企业面临的共同挑战。传统做法是让应用定期轮询后端服务器来获取最新数…

    2026年4月11日
    0
  • 什么是LLM?企业导入LLM的常见应用场景

    自2022年ChatGPT的惊艳问世,到如今国内文心一言、豆包、deekseek、千问等国内AI工具激烈竞争,生成式人工智能已彻底改变了我们的生活与工作方式。但你是否好奇,这些强大…

    2026年4月1日
    0
  • WordPress报413请求实体过大错误

    413 请求实体过大错误,是一种 HTTP 响应,意思是你发送的内容比服务器能接受的要大。HTTP 400 系列错误一般是客户端的问题,但 413 错误更多是因为上传的内容本身合法…

    2026年3月28日
    0
  • 如何使用远程桌面连接 Windows 服务器?

    远程桌面能够实现远程连接Windows 服务器的操作,管理员可以远程访问和管理服务器。 在这篇文章中,我们将介绍如何使用远程桌面连接到 Windows 服务器。此外,我们还将探讨用…

    2026年3月28日
    0
  • 浏览器缓存是什么?网页缓存配置机制推荐

    当用户访问网站时,浏览器会向网页服务器请求所需文件,这些文件会在用户屏幕上显示。为了避免反复请求相同的资源并加快加载过程,浏览器缓存将这些文件的副本存储在本地。当用户再次访问该网站…

    2026年4月11日
    0
  • MongoDB是什么?优缺点、特点及应用场景一网打尽!

    在数字化时代,数据库扮演着至关重要的角色,无论是个人用户还是企业,都需要具备数据存储、缓存、搜索索引、异步处理以及批量处理等功能。目前存在多种不同的数据库和数据管理系统,其中Mon…

    2026年4月2日
    0
  • Nginx与Apache的区别,谁是主流?

    NGINX 和 Apache 是目前最流行的两款 Web 服务器软件,都属于成熟的开源项目,为全球数百万网站提供支持。根据实际需求,两者都能帮助构建强大、可扩展、高性能的 Web …

    2026年4月9日
    0
  • 什么是反向DNS?如何做DNS反向查询?

    反向 DNS,也称为 rDNS,是网络和网络安全领域中一项重要技术。它本质上与传统的前向 DNS 查找相反,后者接收域名并返回相应的 IP 地址。相比之下,反向 DNS 查询会接收…

    2026年3月25日
    0
  • Linux的查找和定位命令有什么不一样?

    熟悉 Linux 终端与否,其实取决于你能否很好地应对混乱的目录结构。Linux 查找命令和 Linux 定位命令是你在审计安全权限、清理日志文件,或寻找你确定保存在某处的配置脚本…

    2026年3月25日
    0
  • 云原生是什么?到底解决什么问题?

    云计算普及的同时,”云原生”这个新的应用分类也随之出现。这个词越来越频繁地出现在开发者对话和技术文章中,却因为过度使用成了一个时髦词汇,反而让真正有价值的技…

    2026年4月11日
    0