本文详细介绍了 Tabby 中 SSH 的实现,解释了应用程序如何使用 SSH 协议建立与远程服务器的安全连接。有关本地终端、串行或 Telnet 连接等其他连接类型的信息,请参阅其各自的文档页面(本地终端、串行连接、Telnet 连接)。
Tabby 的 SSH 实现提供了对远程服务器的安全终端访问,支持各种身份验证方法、端口转发、X11 转发、代理转发和 SFTP 文件传输。该实现围绕 russh 库构建,该库处理 SSH 协议的细节。
来源:tabby-ssh/src/session/ssh.ts96-838 tabby-ssh/src/components/sshTab.component.ts15-231
SSH 实现包含几个关键组件
SSHSession 类是 SSH 实现的核心。它:
来源:tabby-ssh/src/session/ssh.ts96-838
SSHShellSession 类将 SSH 通道与终端前端连接起来:
来源:tabby-ssh/src/session/shell.ts11-116
SSHTabComponent 是 SSH 会话的 UI 组件:
来源:tabby-ssh/src/components/sshTab.component.ts15-231
SSHMultiplexerService 允许在多个标签页之间重用 SSH 连接:
来源:tabby-ssh/src/services/sshMultiplexer.service.ts1-42
来源:tabby-ssh/src/session/ssh.ts265-340 tabby-ssh/src/components/sshTab.component.ts158-186
Tabby 支持多种身份验证方法:
身份验证过程会依次尝试每种方法,直到其中一种成功或所有方法都失败。
来源:tabby-ssh/src/session/ssh.ts520-678
SSH 实现支持多种传输机制:
传输方法根据配置文件选择。
来源:tabby-ssh/src/session/ssh.ts273-301
Tabby 支持三种端口转发类型:
来源:tabby-ssh/src/session/ssh.ts681-742 tabby-ssh/src/api/interfaces.ts40-53
Tabby 通过 SSH 支持 X11 转发:
来源:tabby-ssh/src/session/ssh.ts419-458 tabby-ssh/src/session/ssh.ts752-775
SSH 代理转发允许在通过 SSH 会话访问的服务器上使用本地 SSH 密钥进行身份验证:
来源:tabby-ssh/src/session/ssh.ts460-477 tabby-ssh/src/session/ssh.ts135-252
SFTP(SSH 文件传输协议)通过 SSH 连接受支持:
来源:tabby-ssh/src/session/ssh.ts255-263 tabby-ssh/src/components/sshTab.component.ts214-218
Tabby 实现了主机密钥验证以防止中间人攻击:
Tabby 允许自定义用于 SSH 连接的加密算法:
支持的算法类型在 SSHAlgorithmType 枚举中定义:
CIPHER:加密算法KEX:密钥交换方法HMAC:消息认证码HOSTKEY:服务器主机密钥类型来源:tabby-ssh/src/api/interfaces.ts3-8 tabby-ssh/src/session/ssh.ts268-319
在 Windows 上,Tabby 与 WinSCP 集成以进行文件管理:
来源:tabby-ssh/src/services/ssh.service.ts10-83 tabby-ssh/src/components/sshTab.component.ts62-65
SSH 配置文件存储连接设置:
来源:tabby-ssh/src/api/interfaces.ts10-38 tabby-ssh/src/components/sshProfileSettings.component.ts1-149
当 SSH 标签页打开时:
SSHSession 实例SSHShellSession 来处理终端 I/O来源:tabby-ssh/src/components/sshTab.component.ts73-186
SSHMultiplexerService 允许重用 SSH 连接:
这允许多个终端标签页共享一个 SSH 连接,从而减少开销并简化身份验证。
来源:tabby-ssh/src/services/sshMultiplexer.service.ts1-42 tabby-ssh/src/components/sshTab.component.ts73-146
Tabby 的 SSH 实现为安全远程终端访问提供了强大且功能丰富的解决方案。模块化设计将连接管理、身份验证和终端集成分离,使实现变得灵活且易于维护。
该实现的主要优势包括:
有关相关主题的更多信息,请参阅