当前位置: 首页 > web >正文

SSH浅析

一、简介

SSH(Secure Shell) 是一种加密的网络协议,用于在不安全的网络(如 Internet)上安全地访问、管理和传输数据到远程计算机。主要用于替代传统的 Telnet、rlogin、rsh 等明文传输协议,避免敏感数据(如密码、命令)被窃听或篡改。SSH 有两个主要版本:

  • SSH-1(已不推荐使用)
    存在多项安全漏洞(如会话密钥回收攻击),早期实现中加密算法和认证机制较弱。
  • SSH-2(RFC 4250~4256 定义,IETF 标准)
    引入更强的加密算法(AES、ChaCha20 等)、更安全的密钥交换协议(Diffie–Hellman、ECDH)、多通道复用等,是目前的主流版本。

二、 层次划分

2.1 传输层(Transport Layer Protocol,RFC 4253)
  • 主要功能:提供加密、数据完整性校验、防止重放攻击,确保客户端与服务器之间的机密通信。
  • 核心过程
    1. 协商协议版本:客户端与服务器首先交换支持的 SSH 协议版本(如 SSH-2.0-OpenSSH_8.9)。
    2. 算法协商:双方交换支持的加密算法、MAC 算法、压缩算法列表(如 AES-256-GCM、HMAC-SHA2-256)。
    3. 密钥交换(Key Exchange):常用算法有 Diffie–Hellman(DH)、椭圆曲线 Diffie–Hellman(ECDH),生成会话密钥。
    4. 建立加密通道:所有后续数据都通过该通道加密传输。
2.2 身份验证层(User Authentication Protocol,RFC 4252)
  • 主要功能:验证客户端(用户)是否有权访问服务器。
  • 常用身份验证方法
    1. 密码认证(Password Authentication):用户输入密码,客户端加密后发送,服务器验证。
    2. 公钥认证(Public Key Authentication):客户端持有私钥,服务器保存公钥,利用数字签名验证身份(安全性高,推荐)。
    3. 主机认证(Host-based Authentication):基于客户端主机的公钥,适用于可信网络内部。
3. 连接层(Connection Protocol,RFC 4254)
  • 主要功能:在已加密且认证通过的 SSH 会话上复用多个逻辑通道。
  • 支持的通道类型
    1. 交互式 shell 会话(如 ssh user@host 进入终端)
    2. 远程命令执行ssh user@host command
    3. 端口转发
      • 本地转发(Local Forwarding):将本地端口映射到远程服务
      • 远程转发(Remote Forwarding):将远程端口映射到本地服务
      • 动态转发(Dynamic Forwarding):充当 SOCKS 代理
    4. 子系统(Subsystem):如 SFTP(安全文件传输)

三、工作原理

在这里插入图片描述

总结

SSH 提供的核心功能:

  • 安全的远程登录(Secure Remote Login)
  • 安全的文件传输(如 SFTP、SCP)
  • 端口转发(Port Forwarding / Tunneling)
  • 命令执行(Remote Command Execution)
  • 加密的应用数据通道

SSH 的优点:

  • 安全性高:采用强加密算法和完整性校验
  • 功能丰富:不仅支持远程登录,还可文件传输、端口转发、代理等
  • 可扩展性:支持自定义认证方式和加密算法
  • 跨平台:支持 Linux、macOS、Windows(如 OpenSSH、PuTTY)
http://www.xdnf.cn/news/17737.html

相关文章:

  • 【C#】正则表达式
  • Emscripten 指南:概念与使用
  • 科研人如何挖出SCI级创新选题?
  • [激光原理与应用-253]:理论 - 几何光学 - 变焦镜头的组成原理及图示解析
  • 《算法导论》第 21 章-用于不相交集合的数据结构
  • JavaWeb从入门到精通!第二天!(Servlet)
  • HTTPS服务
  • 小黑课堂计算机一级WPSOffice题库安装包1.44_Win中文_计算机一级考试_安装教程
  • 系统架构设计师备考之架构设计实践知识
  • Kafka跨机房双活方案中MM1与MM2
  • 新型Windows RPC攻击可劫持服务并完全攻陷Active Directory,PoC已公开
  • 开发npm包【详细教程】
  • 测试匠谈 | AI语音合成之大模型性能优化实践
  • 【c++】反向赋值:颠覆传统的数据交互范式
  • HeidiSQL 连接 MySQL 报错 10061
  • 工业相机终极指南:驱动现代智能制造的核心“慧眼”
  • mimiconda+vscode
  • 基恩士FSN10系列数字光纤传感器全新型光纤放大器 FSN11CP
  • 後端開發技術教學(五) 魔術方法、類、序列化
  • Day02——Docker
  • Avalonia实例实战六:控件的拖放
  • 前端面试:promise...then与asnyc ...await
  • 【算法训练营Day23】贪心算法part1
  • 前端工程化:pinia
  • 分享一款基于STC8H8K32U-45I-LQFP48单片机的4路数字量输入输出模块
  • 当AI重塑世界:普通人如何成为“主动进化者”?
  • 第16届蓝桥杯Python青少组_省赛_中/高级组_2025年5月真题
  • VirtualBox虚拟机网卡配置
  • LeetCode 2438.二的幂数组中查询范围内的乘积:模拟(前缀和可选)
  • Ansible 面试题 20250811