Paramiko 核心流程示意图(基于 SSHv2 协议)

在这里插入图片描述

SFTP操作
认证流程
密钥交换
密码认证
密钥认证
密码
公钥
打开远程文件
文件上传/下载
分块读写
校验完整性
认证方法
认证流程
发送密码明文
发送签名挑战
服务器验签
协商加密算法
密钥交换流程
生成临时密钥对
交换公钥
计算共享密钥
验证主机密钥
开始
创建SSHClient
设置主机密钥策略
连接方式
调用Transport.connect
TCP连接建立
SSH协议版本协商
认证成功?
创建SSH会话
抛出异常
执行操作
执行远程命令
SFTP文件传输
端口转发
创建Channel
发送命令
读取stdout/stderr
关闭Channel
创建SFTPClient
关闭SFTPClient
绑定本地端口
转发数据流
关闭Transport
结束

关键流程说明

  1. 初始化连接

    • 创建 SSHClient 并设置主机密钥策略(如 AutoAddPolicy)。
    • 通过 Transport.connect() 建立 TCP 连接。
  2. 协议层握手

    • 版本协商:交换 SSH 协议版本(如 SSH-2.0-Paramiko)。
    • 密钥交换:使用 Diffie-Hellman 等算法生成会话密钥。
    • 主机密钥验证:检查服务器指纹是否可信。
  3. 用户认证

    • 密码认证:明文发送密码(推荐使用密钥替代)。
    • 公钥认证:客户端签名挑战,服务器验证签名。
  4. 执行操作

    • 远程命令:通过 Channel 执行命令并读取输出。
    • SFTP传输:分块读写文件,支持大文件高效传输。
    • 端口转发:绑定本地端口,通过 SSH 隧道转发流量。
  5. 资源释放

    • 显式关闭 ChannelSFTPClientTransport 释放连接。

流程亮点

  1. 多路复用:单 TCP 连接支持多个独立 Channel
  2. 算法灵活:支持 aes256-ctred25519 等现代加密算法。
  3. 异步友好:通过 Transport 线程实现非阻塞 IO。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值