• v0.1.2 Stable

    b612 released this 2026-04-27 00:08:13 +08:00 | 0 commits to master since this release

    fix: 修正 starssh 的 ssh-agent forwarding 生命周期与登录超时语义

    • 重构 ssh-agent forwarding 为按 auth-agent@openssh.com channel 动态建桥,不再长期持有单个本地 agent 连接
    • 新增 sshAgentForwardProxy / sshAgentForwardBridge,统一管理活跃 bridge 生命周期,并在单侧 EOF、bridge 关闭和 proxy.Close() 时主动释放本地 agent 连接与 SSH channel
    • 保持 denied / unavailable / close-race 的既有语义,同时继续保证自动 forwarding 的 best-effort 行为
    • LoginInput 新增 DialTimeout,将 TCP/proxy/ssh-agent 拨号超时与 SSH 握手/认证超时拆分
    • Timeout 收口为握手/认证阶段超时,0 表示不限制,不再在登录入口自动回填默认值
    • 新增 effectiveLoginTimeout / effectiveDialTimeout,统一登录、transport、proxy 和 agent forwarding 的超时决策
    • 调整 login / transport / agent forwarding 链路,确保拨号阶段统一使用 DialTimeout,认证阶段仅使用 Timeout
    • 保持 LoginSimple 的直观行为:传入单个 timeout 时同时映射到 TimeoutDialTimeout
    • 补充回归测试,覆盖 forwarding 启用/禁用、denied、unavailable、close race、单侧 EOF 释放、proxy Close 主动回收,以及登录超时零值与优先级语义
    Downloads