SSH工作原理

SSH工作原理

在这里插入图片描述

SSH(Secure Shell)是一个加密的网络协议,用于在不安全的网络上安全地操作网络服务。以下是SSH连接的关键阶段:

1. TCP连接建立

  • 客户端发起到服务器22端口(默认)的TCP连接
  • 建立TCP三次握手

2. 协议版本协商

  • 双方交换版本信息(如 SSH-2.0-OpenSSH_9.6p1)
  • 确认使用的SSH协议版本(通常是SSHv2)

3. 密钥交换

  • 使用算法(如curve25519-sha256)协商会话密钥
  • 通过Diffie-Hellman密钥交换生成共享密钥
  • 建立加密通道

4. 服务器认证

  • 服务器发送其主机密钥
  • 客户端验证服务器身份(通过known_hosts)
  • 防止中间人攻击

5. 用户认证

  • 支持多种认证方式:
    • 公钥认证(最推荐)
    • 密码认证
    • 键盘交互式认证
  • 认证成功后建立会话

验证ssh的连接过程

使用ssh -vvv user@host 连接服务器, 查看连接过程

连接建立

debug1: Connecting to 192.168.1.100 [192.168.1.100] port 22.
debug1: Connection established.

客户端通过 TCP 三次握手与服务器的 22 端口建立连接。这是 SSH 通信的基础

协议版本协商

debug1: Local version string SSH-2.0-OpenSSH_for_Windows_9.5
debug1: Remote protocol version 2.0, remote software version OpenSSH_9.2p1 Debian-2+deb12u4
debug1: compat_banner: match: OpenSSH_9.2p1 Debian-2+deb12u4 pat OpenSSH* compat 0x04000000    
debug1: Authenticating to 192.168.1.100:22 as 'will'

客户端和服务端互相发送支持的 SSH 协议版本(此处均为 SSH-2.0)。若版本兼容(如 2.0),则进入下一步。

  • 本地版本: SSH-2.0-OpenSSH_for_Windows_9.5
  • 远程版本: OpenSSH_9.2p1 Debian-2+deb12u4
  • 协议版本: 2.0
  • 软件版本: OpenSSH_9.2p1 Debian-2+deb12u4

密钥交换

debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: algorithm: curve25519-sha256

双方协商加密算法、MAC 算法、密钥交换算法等(如 Diffie-Hellman),生成临时会话密钥,后续通信基于此密钥加密

服务器认证

debug1: Host '192.168.1.100' is known and matches the ED25519 host key.
debug1: Found key in C:\\Users\\Administrator/.ssh/known_hosts:1

服务器发送其主机密钥,客户端验证服务器身份(通过known_hosts),防止中间人攻击

用户认证

debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Offering public key: C:\\Users\\Administrator/.ssh/id_rsa RSA SHA256:eTpwF5Q96F14o9j53yJgtQXPXKDDq0f+FPVVm2eLPtM
debug1: Server accepts key: C:\\Users\\Administrator/.ssh/id_rsa RSA SHA256:eTpwF5Q96F14o9j53yJgtQXPXKDDq0f+FPVVm2eLPtM
Authenticated to 192.168.1.100 ([192.168.1.100]:22) using "publickey" 
debug1: channel 0: new session [client-session] (inactive timeout: 0)
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.

客户端尝试使用公钥认证,服务器接受公钥,认证成功, 进入交互式会话

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值