Skip to content

Sn0r1axi/finalshell2all

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

finalshell2all

A FinalShell export tool for SSH session migration, Termius import, and SecureCRT import.

把 FinalShell 里的 SSH 会话带到别的客户端,而不是从头重建一遍。

finalshell2all 直接读取 FinalShell 根目录中的 config.jsonconn/:还原分组树、解密会话密码、识别代理与私钥引用,再按目标客户端的能力导出。它适合迁移前盘点,也适合把现有会话长期保存在更通用的格式里。

现在能做什么

能力 检查 FinalShell Termius CSV SecureCRT
分组树
主机、端口、用户名
会话密码 显式生成报告时可查看 可显式写入 CSV 不导出
私钥 识别引用 CSV 无对应字段 可显式复制并引用
代理 解析并检查 警告 警告
端口转发 检查数量 警告 警告

目前支持两个导出目标:

  • Termius CSV:适合快速导入主机和分组;CSV 本身没有代理、私钥和端口转发字段。
  • SecureCRT:生成原生 Sessions/ 目录树和 .ini 会话,最适合保留分组、主机、端口、用户名和私钥引用。

快速开始

需要 Python 3.10+。

python -m pip install -e .

默认 FinalShell 根目录通常是:

$env:LOCALAPPDATA\finalshell

也可以传入任意包含 config.jsonconn/ 的 FinalShell 根目录。

先盘点,再迁移

python -m finalshell2all inspect "$env:LOCALAPPDATA\finalshell"

它会输出会话数、分组数和不能安全处理的配置警告,不会在终端显示密码。

如确有审计需要,可显式生成包含密码的本地报告:

python -m finalshell2all inspect "$env:LOCALAPPDATA\finalshell" --report temp/finalshell-inspection.md --include-passwords

报告包含明文密码,应只保存在受控位置。temp/ 默认不会提交到 Git。

导出到 Termius

python -m finalshell2all export termius-csv "$env:LOCALAPPDATA\finalshell" --output temp/termius-import.csv

输出为带 BOM 的 UTF-8 CSV,字段与 Termius 导入示例一致;FinalShell 分组会写入 Groups。端口 22 留空,使用 SSH 默认端口。

默认不写入密码。只有在明确需要且能安全保管 CSV 时才使用:

python -m finalshell2all export termius-csv "$env:LOCALAPPDATA\finalshell" --output temp/termius-with-passwords.csv --include-passwords

导出到 SecureCRT

python -m finalshell2all export securecrt "$env:LOCALAPPDATA\finalshell" --output temp/securecrt --include-private-keys

输出目录必须为空。导出完成后,关闭 SecureCRT,将 temp/securecrt 设为其配置目录,或将其中的 Sessions/Keys/ 复制到现有配置目录。

Sessions/ 保留 FinalShell 分组和连接信息。--include-private-keys 会在 Keys/ 原样写入被引用的 PEM 或 PPK 私钥,并让会话通过 ${VDS_CONFIG_PATH}/Keys/... 引用它。该选项会导出敏感密钥材料,只应写入受控目录。

SecureCRT 导出不会迁移会话密码。这是有意的安全策略,不是待补的格式缺陷:优先使用已迁移的私钥认证,而不复制或伪造 SecureCRT 的密码字段。

边界与下一步

当前最重要的边界是代理与端口转发:工具会识别并警告它们,但不会生成未经验证的目标配置。目标客户端的代理、跳板和转发格式差异很大,错误迁移比明确提示更危险。

后续方向:

  1. 为 SecureCRT 增加经真实配置样本验证的代理 Profile 映射。
  2. 在取得 FinalShell 端口转发样本后,增加 SecureCRT 的本地、远程和动态转发映射。
  3. 增加 MobaXterm 导出器,重点覆盖会话分组、私钥与跳板配置。
  4. 增加 PuTTY 导出器,处理注册表会话和 PPK 私钥。
  5. 完善 CLI:自动发现 FinalShell 根目录、列出可用格式、交互选择导出目标,并统一输出迁移摘要。

密码迁移不在默认路线中;若未来确有需求,只会作为显式开关,并在目标客户端版本上完成写入与登录验证后提供。

开发与安全

运行测试:

python -m pip install -e ".[dev]"
python -m pytest

会话密码只在进程内存中处理。请勿提交 FinalShell 根目录、导出报告、CSV 或私钥;项目已忽略 data/temp/ 和本机 Termius 样例文件。

About

Export FinalShell SSH sessions to Termius CSV and SecureCRT. Preserve folder groups and private-key references. FinalShell 会话导出与迁移工具,支持 Termius、SecureCRT、分组与私钥。

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors

Languages