什么是 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

相关推荐

  • 什么是远程代码执行(RCE)攻击?

    远程代码执行(RCE)攻击指的是借助系统某一层级存在的安全缺陷,向目标系统中植入并运行恶意指令。攻击者借此可在受害系统上执行各类操作——包括下达系统命令、窃取敏感信息、篡改或加密数…

    2026年6月23日
    0
  • Vim 自动缩进命令

    Vim 是一款模式化文本编辑器,支持多种编辑模式,不同模式下键盘按键的功能会发生变化。它自带一套功能强大、设置灵活的自动缩进机制,核心就是 indentexpr 选项。写代码时缩进…

    2026年4月29日
    0
  • xss攻击是什么?

    XSS 是什么? XSS,即跨站脚本攻击,是 Cross-site scripting 的简称。 完整名称缩写后本该是 CSS,但这恰好与 层叠样式表 Cascading Styl…

    2026年6月8日
    0
  • 如何提高Ubuntu 18.04系统的SSH安全性?

    SSH服务是云服务器的主要访问点,同时也是最容易受到攻击的服务之一。本指南将通过不同的技巧和技术帮助提高服务的安全性。 更改端口 监听SSH连接的默认端口是22,更改此设置将允许将…

    2026年5月20日
    0
  • 边缘计算与分散计算的关系

    边缘计算的核心理念,在于将计算与存储资源部署在企业数据中心之外,置于分支机构内部或其临近区域。但需要明确的是,边缘计算与传统意义上的分散式计算存在本质区别,前者是由物联网技术所驱动…

    2026年7月30日
    0
  • 什么是 HTML5?含义、元素和优势

    HTML5 是 HTML 的第五个版本,HTML 是一种标记语言,供 Web 浏览器用于可视化代码。它在网站功能、Web 内容开发等方面进行了多项改进。本文将介绍 HTML5 的含…

    2026年4月27日
    0
  • 什么是服务器性能监控?

    服务器性能监控,简单来说就是对服务器的各类系统资源进行实时观测,包括CPU使用率、内存占用、存储容量、I/O性能以及网络运行状态等。 做好这项工作,能帮我们及时发现服务器的各种异常…

    2026年4月23日
    0
  • 独立服务器防护规则自定义:针对业务特征放行合法访客拦截恶意流量

    在企业级服务器运维的实战场景中,很多团队陷入了“安全工具堆得越多,误拦截问题越严重”的怪圈:花了高额成本采购的安全产品,经常把正常的客户访问、爬虫合作流量当成恶意请求直接封禁,反而…

    2026年8月28日
    0
  • 什么是DNS欺骗

    一、核心定义与别名 ‌基础定义‌:攻击者冒充域名服务器,把用户查询的目标网站IP替换为攻击者控制的恶意IP,让用户直接访问伪造站点。 ‌常见别名‌:也被称为DNS缓存投毒、域名服务…

    2026年8月11日
    0
  • 什么是云存储(Cloud Storage)?为您全面解析企业云存储类型!

    随着企业数字化转型的普及,企业对数据存储的需求日益增长,而传统的本地存储方式已无法满足弹性与安全性的要求,云存储(Cloud Storage)已成为现代企业的最佳选择。 然而,市面…

    2026年4月3日
    0