KiTTY:基于 PuTTY 0.76 分叉的 Windows SSH/Telnet 客户端——功能全景、kitty.ini 配置与编译指南

发布时间:2026/10/14 16:55:02
KiTTY:基于 PuTTY 0.76 分叉的 Windows SSH/Telnet 客户端——功能全景、kitty.ini 配置与编译指南
通信网络【免费下载链接】KiTTY:computer: KiTTY, a free telnet/ssh client for Windows项目地址https://gitcode.com/gh_mirrors/kit/KiTTY点击查看免费下载KiTTY 是面向 Windows 平台的免费 telnet/SSH 客户端基于 Simon Tatham 的 PuTTY 0.76 分叉而来在完整保留 PuTTY 原有功能的基础上增加了会话过滤器、自动密码、端口敲击、URL 超链接、会话启动器、托盘化、透明窗口等一系列扩展能力。读完本文你将了解 KiTTY 与上游 PuTTY 的关系和版本定位、它的完整功能矩阵、默认配置文件kitty.ini的关键参数、新增命令行选项以及如何用 MinGW 或官方交叉编译镜像从本仓库源码构建出kitty.exe。KiTTY 是什么PuTTY 0.76 的 Windows 专属分叉项目文档docs/index.md对 KiTTY 的定义非常明确KiTTYis a fork from version 0.76 ofPuTTY, the best telnet / SSH client in the world. KiTTY is only designed for the Microsoft® Windows® platform.也就是说代码基线是 PuTTY 0.76。仓库内保留了两个完整的上游源码树0.76_My_PuTTY/扁平结构对应 PuTTY 0.76 官方布局和0.76b_My_PuTTY/对应 PuTTY 团队后来重新组织的目录结构如crypto/、ssh/、utils/、terminal/等子目录仅支持 Windows 平台官方文档明确说明这是有意的取舍。维护者在 docs/pages/history.md 中解释Windows 是唯一没有标准 ssh 客户端的平台这也是 KiTTY 长期只维护 Windows 版本的原因KiTTY 的功能 PuTTY 全部功能 一批自有扩展 多个第三方补丁的合并RuTTY、TuTTY、PuTTYCrypt 等这些扩展以kitty_*.c/h源码文件叠加在上游代码之上。当前版本信息保存在 docs/version.txt内容为0.76.1.13。仓库中 0.76_My_PuTTY/windows/version_major.txt 为0.76.00.76_My_PuTTY/windows/version_minor.txt 为14与 PuTTY 上游版本号体系一致。官网首页的版本号图片由 docs/version1.php 动态读取version.txt生成这也解释了文档中[![Current version](https://gitcode.com/gh_mirrors/kit/KiTTY/blob/75fa2abcd220c17249ff7252f8d5224137001f2d/docs/version1.php?utm_sourcegitcode_repo_files)](https://link.gitcode.com/i/7e6011784f1bdc518d3792cba09ef27a)这一引用。功能全景README 中的五类扩展README.md 把 KiTTY 相对 PuTTY 的新增功能分为五个类别这也是 docs/navigation.md 站点菜单的组织方式每个功能对应docs/pages/下的一篇说明文档最初最受需求驱动的功能The very first requested features功能说明文档Sessions filter会话过滤器docs/pages/SessionsFilter.mdPortability便携模式docs/pages/Portability.mdShortcuts for pre-defined command预定义命令快捷键docs/pages/Shortcuts.mdThe session launcher会话启动器docs/pages/SessionLauncher.mdAutomatic logon script自动登录脚本docs/pages/LogonScript.mdAutomatic logon script with the RuTTY patchRuTTY 补丁版登录脚本docs/pages/RuTTY.mdURL hyperlinksURL 超链接docs/pages/URLHyperlinks.md技术类功能Technical featuresAutomatic password自动密码→ docs/pages/AutomaticPassword.mdAutomatic command自动命令→ docs/pages/AutomaticCommand.mdRunning a locally saved script on a remote session在远程会话上运行本地保存的脚本→ docs/pages/LocalScript.md图形类功能Graphical featuresAn icon for each session每个会话独立图标Send to tray发送到托盘适合 SSH 隧道常驻Transparency窗口透明Protection against unfortunate keyboard input防误操作锁定Roll-up窗口卷起到标题栏Always visible始终置顶Quick start of a duplicate session快速启动重复会话Enhanced Configuration Box增强配置框其他功能Other featuresAutomatic saving自动保存设置到kitty.savSSH HandlerInternet Explorer 的telnet:///ssh://协议关联pscp.exe 与 WinSCP 集成Binary compression二进制压缩官方分发版经 UPX 压缩Clipboard printing剪贴板打印Cygwin 与 cmd.exe 集成File association.ktx会话文件关联Other settings 与 New command-line options附赠功能Bonus一个隐藏在 KiTTY 里的轻量聊天服务器一个内嵌的隐藏文本编辑器这些功能在源码层面有清晰落点根目录下的kitty.c、kitty_ssh.c、kitty_launcher.c、kitty_crypt.c自动密码的加解密配套 kitty_crypt.h 与 bcrypt/、base64/ 静态库、kitty_puttytray.c托盘、kitty_proxy.c、kitty_registry.c注册表/便携模式存储、kitty_settings.c、kitty_win.c等文件构成 KiTTY 自有代码层而zmodem/winpzmodem.c、adb/adb.c、blocnote/内嵌编辑器、url/urlhack.c超链接等目录则承载各专项功能。kitty.ini默认配置文件及其生成机制KiTTY 的全部扩展功能由kitty.ini统一开关控制。仓库根目录的 kitty_ini.txt 就是随程序分发的默认配置模板按 INI 分区组织注释完整值得逐节阅读。[KiTTY]主区这是核心功能开关区典型条目包括autoreconnectyes启用断线自动重连配套ReconnectDelay5重连前等待秒数hyperlinkyes启用 URL 超链接识别transparencyyes启用窗口透明winrolyes启用 Roll-up卷起到标题栏shortcutsyes、mouseshortcutsyes启用键盘/鼠标快捷键ctrltabyesCtrlTab 切换多个 KiTTY 窗口iconyes与iconfilekitty.exe内置图标管理numberoficons45定义内置图标总数pastesize0粘贴字符数上限超过则弹确认0 为不限制pasteno慢速服务器可开启“逐行粘贴”savemoderegistry会话设置保存方式可选registryWindows 注册表、file单一文件注明 currently not maintained、dir目录结构即便携模式configdir便携模式下设置目录Sessions、SshHostKeys 等所在位置通常与kitty.exe同目录sshversionOpenSSH_5.5注释态默认版本串是PuTTY-KiTTY遇到拒绝非标准版本串的服务器时可改zmodemyes启用 sz/rz 文件传输bgimageno、slidedelay0背景图与幻灯片功能0 表示不自动切换等待键盘事件。[ConfigBox]区控制主配置窗口行为例如dblclickopen双击会话默认动作是 open 还是 start、filteryes会话列表过滤、height21列表可见行数、noexit退出时返回配置框。[Shortcuts]区定义全部菜单快捷键的键位注释里给出了默认值如autocommand重发自动命令SHIFTF12、command运行本地命令CTRLF5、sendfile/getfile配合 pscp 发送/接收文件CTRLF3/CTRLF4、tray发送到托盘CTRLF6、script加载本地脚本远端执行CTRLF2、protect锁定窗口CTRLF9等。[Print]、[Agent]、[Launcher]区分别管打印版式maxchar85、maxline60、Pageant 私钥使用确认策略askconfirmationauto表示仅当私钥注释含needs confirm时才询问、以及会话启动器是否在每次弹出菜单时重新加载列表reloadyes。配置文件的生成链路源码级证据kitty_ini.txt 并不是普通参考文档而是被构建流程直接消费的文件。0.76_My_PuTTY/windows/MAKEFILE.MINGW 中有规则../../kitty_ini.h: ../../kitty_ini.txt ( printf char default_init_file_content[] ; sed s/\\/\\\\/g ../../kitty_ini.txt | sed s/$$/\\n\\/ ; printf ;\n ) ../../kitty_ini.h它把整份 ini 转义为一个 C 字符串常量default_init_file_content嵌入kitty_ini.h。运行时0.76_My_PuTTY/windows/window.c 在启动阶段调用CreateDefaultIniFile()注释即 Creation du fichier kitty.ini par defaut si besoin在本地缺失时落盘出kitty.ini默认位于%APPDATA%\KiTTY见 docs/pages/AutomaticSaving.md。此外window.c还处理-defini命令行选项调用CreateIniFile(kitty.template.ini)生成模板后退出0.76_My_PuTTY/windows/window.c#L1048。同理帮助文本也是由文档生成的——Makefile 将 docs/pages/CommandLine.md 中CmdLineOptions_begin到CmdLineOptions_end之间的内容编译进kitty_help.h保证-help输出与仓库文档始终同步。新增命令行选项除 PuTTY 原有参数外KiTTY 在 docs/pages/CommandLine.md 中列出了一批自有选项上文已说明该页内容会被编译进程序的-help输出会话与启动-kload加载 .ktx 会话设置、-foldersavemodedir 模式下直接打开某文件夹须位于-load之前、-fullscreen、-send-to-tray隧道场景直接驻留托盘、-initdelay首次自动动作前的延迟默认 2.0 秒、-xpos/-ypos初始窗口位置、-title窗口标题自动行为-auto-store-sshkey免确认存储服务器 SSH 主机密钥、-cmd启动自动命令、-loginscript加载登录脚本、-pass设置密码、-knock端口敲击序列功能开关-notrans禁用透明、-noicon禁用图标、-noshortcuts禁用全部快捷键、-noctrltab、-nobgimage、-nozmodem、-nofiles不创建默认 ini、-putty一个选项禁用全部 KiTTY 扩展特性退化为 PuTTY 行为工具与集成-keygen启动内嵌密钥生成器、-runagent启动内嵌 SSH agent、-sshhandler建立telnet://、ssh://协议关联、-fileassoc关联 .ktx 文件、-localproxy/-codepage配合 Cygterm、-convert-dir把注册表设置转换为 savemodedir 模式其他-icon/-iconfile选择内置/外部图标、-classname自定义窗口类名、-sendcmd向同窗口类名的所有窗口发送命令、-log、-edit、-help、-version仅打开关于框、-defini生成 kitty.template.ini其中-cmd、-codepage等选项的解析逻辑可直接在 0.76_My_PuTTY/windows/window.c 的命令行分支中看到例如-cmd会写入CONF_autocommand配置项-defini则直接生成模板文件并退出。配套的小工具也各自带扩展选项Klink命令行版支持-auto-store-sshkeyKageantagent 工具支持-pass指定 SSH 密钥口令。文档站点结构markdown 驱动的 MDwiki 站点本仓库的docs/目录就是官方介绍网站kitty.9bis.com的源文件。从源码结构看站点基于 MDwiki 渲染docs/index.html 是单页宿主运行时通过#hash路由加载不同 markdown 页面docs/navigation.md 是站点菜单Most requested / SSH / Technical / Graphical / Other / Bonus 分组与 README 的功能分类一一对应docs/index.md 即首页docs/index.php 只是一个 301 跳转到index.html#!index.md的兼容层docs/config.json 定义站点标题、锚点字符、页脚等渲染参数每篇功能页位于 docs/pages/如 CommandLine.md、HowToCompile.md、Portability.md、AutomaticSaving.md 等另有docs/img/下的配置截图config_*.jpg、ex_*.jpg供各功能页配图。首页还给出两个版本说明的入口docs/pages/0.71.md 与 docs/pages/0.75.md分别记录了两代 PuTTY 大版本合并时对 KiTTY 的影响下文详述。版本沿革跟随 PuTTY 大版本合并的补丁工程docs/pages/history.md 完整记录了这条演进线2003 年作者基于 PuTTY 0.53 开始个人修改当时还没有版本管理最初动机是自动化 Solaris/HP-UX 的密码输入和为每个终端窗口指定图标即最早的 PERSOPORT 补丁2006 年以 0.58 版本对外发布 KiTTY 网站此后陆续合并 LePuTTY、PuTTYTray、TuTTY、RuTTY 等第三方补丁MOD_* 系列2010 年引入 Subversion 做版本管理2013 年底PuTTY 0.63 重写了会话设置结构是一次大爆炸式合并2018 年以 0.70 版本切换到 git仓库公开2019 年0.71 版本再次带来大改——设置管理演进、SSH 核心几乎全部重写、Windows 核心函数重写。docs/pages/0.71.md 记录了当时几个补丁因此失效PuTTYCrypt 的 sshpubk.c 合并失败、PuTTYCyg、Zmodem、covidimus 背景图补丁等而 Portability 补丁被完全重写2022 年中0.77 合并对应 PuTTY 团队的目录重组这也解释了仓库中同时存在0.76_My_PuTTY/与0.76b_My_PuTTY/两棵源码树docs/pages/0.75.md 则说明在 0.75 代合并中放弃了 TuTTY 颜色补丁、ADB 补丁和 GitHub Actions 自动构建。这解释了 KiTTY 的开发模式每次 PuTTY 发版都是一次完整的合并与适配工程部分第三方补丁会因上游文件重构而无法继续维护者会明确公告取舍而不是保留失效声明。如何编译 KiTTY编译文档见 docs/pages/HowToCompile.md 与 README.md。方式一官方推荐——Docker 交叉编译镜像在 Linux 上构建 Windows 程序32 位mkdir -p builds 2 /dev/null || rm -f builds/*.exe docker run --rm -it -v $(pwd)/builds:/builds -e USR_UID$(id -u) -e USR_GID$(id -g) cyd01/cross-gcc git clone https://github.com/cyd01/KiTTY.git ; cd KiTTY/0.76b_My_PuTTY/windows ; make -f MAKEFILE.MINGW cross ; cd /builds ; ls -l64 位把目标改为cross64即可docker run --rm -it -v $(pwd)/builds:/builds -e USR_UID$(id -u) -e USR_GID$(id -g) cyd01/cross-gcc git clone https://github.com/cyd01/KiTTY.git ; cd KiTTY/0.76b_My_PuTTY/windows ; make -f MAKEFILE.MINGW cross64 ; cd /builds ; ls -l产物kitty.exe及其他工具输出到挂载的builds目录。0.76b_My_PuTTY/windows/MAKEFILE.MINGW 中确实定义了cross:目标。方式二Windows 下 MSYS/MinGW32 环境原生编译进入x.yy_My_PuTTY\windows目录执行make -f MAKEFILE.MINGW putty.exe从 0.76_My_PuTTY/windows/MAKEFILE.MINGW 的构建规则可以看到两条值得注意的细节kitty目标先构建putty.exe再将其改名为kitty.exeKiTTY 本质上就是把扩展模块链进 PuTTY 主程序kitty.dll目标用-Wl,--whole-archive把base64.a、libregex.a、bcrypt.a、libjpeg.a、MD5check.a、notepad.ablocnote 内嵌编辑器、mini.a等预编译静态库整体链入最后用upx --best --compress-icons2压缩——这正是Binary compression功能的来源对应官方分发中另有未压缩版kitty_nocompress.exe。下载与安装渠道docs/pages/download.md 给出官方分发渠道主渠道为 CDN 站点 fosshub.com 上的最新版kitty.exe亦可通过 scoop、chocolatey、liberkey、portableapps 等包管理器安装其他可用下载件便携版kitty_portable.exe无需改配置文件、未压缩版kitty_nocompress.exe、文件传输工具kscp.exepscp 对应物、命令行工具klink.exeplink 对应物、agent 工具kageant.exe一个实用技巧若要搭配 PuTTY 团队的 Pageant 使用直接把kitty.exe改名为putty.exe即可Pageant 通过窗口类名识别会话。小结KiTTY 的价值在于它是 PuTTY 之上经过二十年、跟随 PuTTY 0.53→0.76 多次大版本合并验证的 Windows 专属扩展层功能开关全部收敛在 kitty_ini.txt 这一份默认配置中构建时嵌入、启动时落盘命令行扩展与 PuTTY 参数兼容且可用-putty一键退化源码同时保留新旧两代 PuTTY 目录树以体现 0.77 合并过程。对需要自动密码、会话启动器、托盘隧道、便携部署等能力的 Windows 运维场景它是值得直接阅读源码并自行编译的成熟方案。赞分享通信网络【免费下载链接】KiTTY:computer: KiTTY, a free telnet/ssh client for Windows项目地址https://gitcode.com/gh_mirrors/kit/KiTTY点击查看免费下载相关推荐KiTTY 深度解析基于 PuTTY 0.76 的 Windows SSH/Telnet 客户端增强实践KiTTY 深度解析基于 PuTTY 0.76 的 Windows SSH/Telnet 客户端增强实践 本文围绕 KiTTY 官方 README https通信网络【免费下载】 KiTTY一款强大的Windows平台Telnet/SSH客户端KiTTY一款强大的Windows平台Telnet/SSH客户端 项目基础介绍和主要编程语言 KiTTY是一款基于PuTTY 0.76版本的Windows平台通信网络WeChatMsg 留痕免费三步把微信聊天记录导出为 HTML、Word、CSVWeChatMsg 留痕免费三步把微信聊天记录导出为 HTML、Word、CSV 微信的聊天记录锁在一个普通用户打不开的本地数据库文件里官方路径只有整机迁移创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考