Skip to content

Release Notes

licco edited this page Aug 2, 2026 · 2 revisions

Release Notes - v1.0.0

发布日期: 2026-05-31

🎉 SSH LICCO v1.0.0 正式发布! 这是首个主要版本,标志着项目从 Alpha 阶段进入生产就绪状态。


🏆 里程碑

v1.0.0 是 SSH LICCO 的首个主要版本,代表项目已具备:

  • 完整的功能集 — SSH 连接、命令执行、文件传输、Docker 管理、密钥管理
  • 生产级安全 — 三级安全策略、命令白名单、路径验证、速率限制
  • 全面的测试覆盖 — 402 个测试用例,17 个源模块 100% 覆盖
  • 完善的文档 — API 参考、使用指南、快速开始、贡献指南
  • CLI 命令行工具 — exec / upload / download / docker-build / list-hosts
  • 企业级特性 — 审计日志、看门狗监控、连接池、批量执行

🆕 新功能

CLI 命令行增强

新增完整的 CLI 子命令支持,可直接在终端执行 SSH 操作:

ssh-licco exec --host 192.168.1.100 -u root --password pwd "ls -la"
ssh-licco upload ./local.txt /remote/path.txt
ssh-licco download /remote/log.txt ./local.log
ssh-licco docker-build myapp:latest --context /app
ssh-licco list-hosts

看门狗监控(Watchdog)

  • 任务注册、心跳检测、进度更新
  • 异常捕获和事件历史记录
  • 恢复回调机制
  • 全局异常处理器(GlobalExceptionHandler)
  • 异步监控循环

审计日志(AuditLogger)

  • JSON 结构化审计记录
  • 连接/断开、命令执行、文件传输、认证事件
  • 额外字段支持
  • 文件日志处理器

连接池(ConnectionPool)

  • 高性能连接复用
  • 最大连接数限制
  • 空闲连接超时回收
  • 连接健康检查

批量执行(BatchExecutor)

  • 同步批量执行器(BatchExecutor)
  • 异步批量执行器(AsyncBatchExecutor)
  • 多主机并行命令执行
  • 可配置工作线程数

线程池执行器(ThreadPoolExecutor)

  • 单例模式线程池
  • async_exec 装饰器,将同步函数转为异步
  • get_executor() 便捷函数

🔒 安全增强

三级安全策略

级别 适用场景 说明
STRICT 生产环境 禁止管道、重定向、命令替换等所有危险操作
BALANCED 开发环境(默认) 允许基础命令,禁止危险字符
RELAXED 测试环境 允许管道和重定向,仍禁止路径遍历

CommandValidator

  • 命令白名单验证(60+ 基础命令 + Docker + 系统管理)
  • 危险字符检测(管道 |、重定向 > <、反引号 `、命令替换 $()、后台 &
  • 危险关键字检测(passwd、shadow)
  • 命令长度限制(默认 4096 字符)
  • 相似命令提示

PathValidator

  • 路径遍历攻击防护(../ 检测)
  • 敏感路径保护(/etc、/root、/var/log)
  • 基础目录限制
  • 环境变量创建验证器(create_validators_from_env()

🧪 测试

测试覆盖

指标 数值
总测试用例 402
通过 402
跳过 3
失败 0
源模块覆盖 17/17(100%)

测试模块

模块 用例数 覆盖内容
exceptions 7 异常层次结构、消息、属性、异常链
connection_config 8 Pydantic 模型、默认值、验证
security 24 三级策略、命令验证、路径验证、环境变量
logging_config 8 单例、级别、文件处理器
audit_logger 12 连接/命令/传输/认证日志
executor 8 单例、线程池、async_exec
watchdog 18 任务管理、心跳、异常捕获、全局处理
key_manager 6 RSA/Ed25519 生成、保存、加载
config_manager 10 配置 CRUD、默认值、磁盘隔离
clients 28 Paramiko 连接/执行/传输、工厂模式
session_manager 18 会话 CRUD、限制、委托
connection_pool 10 获取/归还、超时、健康检查
batch_executor 10 同步/异步批量执行
cli 10 参数解析、安全验证、配置加载
server 30+ 速率限制、Docker、后台任务、主机管理
service 14 连接/断开/执行/健康检查

📦 架构改进

单例模式统一

所有全局组件统一使用 __new__ + _initialized 单例模式:

  • SSHLogger — 日志管理
  • AuditLogger — 审计日志
  • ThreadPoolExecutor — 线程池
  • Watchdog — 看门狗

Pydantic 数据模型

  • ConnectionConfig — 连接配置(含端口范围验证、认证方法枚举)
  • SSHConfig / SSHHost / ServerConfig — 配置管理模型

工厂模式

  • SSHClientFactory — SSH 客户端工厂(Paramiko / AsyncSSH / Fabric)
  • create_validators_from_env() — 安全验证器工厂

异常层次结构

SSHException (基类)
├── ConnectionException
│   ├── TimeoutException
│   └── NetworkException
├── AuthenticationException
│   ├── PasswordAuthenticationException
│   └── KeyAuthenticationException
├── CommandExecutionException
├── FileTransferException
└── SessionException
    ├── SessionNotFoundException
    └── SessionTimeoutException

📝 文档更新

  • README.md — 新增 CLI 章节、测试状态、特性亮点更新
  • USAGE.md — 新增 CLI、连接池、批量执行、看门狗、审计日志章节
  • QUICKSTART.md — 新增 CLI 命令示例、环境变量
  • TEST_REPORT.md — 完整测试报告(16 个模块详情)
  • docs/API_REFERENCE.md — 新增 10 个 API 章节
  • docs/CONTRIBUTING.md — 测试要求更新

⚠️ 破坏性变更

无。v1.0.0 与 v0.5.5 完全向后兼容。


🔄 升级指南

从 v0.5.x 升级到 v1.0.0 无需任何代码修改:

# pip 升级
pip install --upgrade ssh-licco

# npm 升级
npm update -g ssh-licco

🙏 致谢

感谢所有在 0.x 阶段提供反馈和贡献的开发者。v1.0.0 的发布标志着 SSH LICCO 已准备好用于生产环境。


完整变更日志: https://github.com/Echoqili/ssh-licco/compare/v0.5.5...v1.0.0

Clone this wiki locally