f0d66c4f8b461aa808b63298be6226e787f42365
会话对话框新增密码字段和私钥口令字段,填一次之后连接就不再弹认证框。 秘密存进系统钥匙串(keyring 4:macOS Keychain / Windows 凭据管理器 / Secret Service),数据库里依然不出现任何秘密。 - 新增 secrets 模块:SecretRef 按 user@host:port 归属密码、按文件路径 归属私钥口令,所以会话改名、复制都不丢,同一把钥匙只问一次。 SecretStore 的方法全是阻塞的,只能在后台执行器或传输层工作线程上调用。 - SSH 认证在弹框前先查钥匙串;被服务器拒绝时退回弹框并说明原因,条目 保留不动,因为那是用户在对话框里填的。 - 写入的唯一入口是 SessionStore::save_secret,失败沿用 PersistFailed。 会话换端点或被删除时,用 password_in_use 判断旧条目是否还有人用。 - 对话框的预填是异步的,*_loaded 置上之前空字段不算「用户清空了」, 预填还没回来就点保存不会误删。 - 修正 CLAUDE.md / AGENTS.md 里「SSH 仍是 mock」的过期描述。 测试服务端原先对错误密码返回 UnsupportedMethod,russh 会因此摘掉密码 方式,真实服务器不是这个行为;改成 OpenSSH 那样拒绝但保留密码方式。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018Ub6VpmWWAJB15MnYLT9G5
Description
High-performance native SSH client in Rust, GPU-rendered with GPUI: host manager, terminal, WinSCP-style SFTP and port forwarding. Rust 编写、GPU 渲染的原生 SSH 客户端。
https://shellrs.com
14 MiB
0 Stars
1 Watchers
0 Forks