Orca SSH 连接 Kerberos 主机失败:GSSAPI 与 FIDO2 安全密钥为何要走系统 OpenSSH
【免费下载链接】orcaOrca is the ADE for working with a fleet of parallel agents. Run any coding agent with your own subscription. Available on desktop, mobile and remote runtime.项目地址: https://gitcode.com/GitHub_Trending/orca48/orca
在 Orca 里把 agent 跑在远程机器上,SSH 是最常用的接入方式。但有两类主机会让连接在认证环节失败:一类要求 Kerberos / GSSAPI 认证,另一类要求 FIDO2 安全密钥(touch / PIN 交互)。失败的原因不在网络或密码,而在于 Orca 内置的 ssh2 客户端不支持 GSSAPI 协议,也无法处理安全密钥的硬件交互——遇到这类目标时,Orca 会把连接交给系统的 OpenSSH 二进制来完成。这篇文章说明这条切换机制的判定条件、连接前的准备工作、在 Settings → SSH 中导入目标的操作路径,以及用klist和Test按钮验证连接的方法。适用环境是 Orca 桌面客户端通过 SSH 连接远程工作树主机,依据见 SSH worktrees 文档 与 Troubleshooting & FAQ。
哪些目标会走系统 OpenSSH 传输
Orca 内置一个 ssh2 传输,常规密钥(普通 Ed25519、ECDSA、RSA)走这条内置路径。以下两种情况会强制改用系统 OpenSSH:
- Kerberos / GSSAPI 主机:如果 OpenSSH config(
~/.ssh/config)里对应 Host 设置了GSSAPIAuthentication yes,Orca 会优先为该目标选择系统 OpenSSH 传输,因为内置的 ssh2 客户端不支持 GSSAPI。 - FIDO2 / 安全密钥身份:硬件支持的 OpenSSH 身份(
ed25519-sk、ecdsa-sk,包括通过 ssh-agent 提供的安全密钥)同样使用系统 OpenSSH 而非内置客户端。Orca 从你的身份文件检测密钥类型,然后把连接交给操作系统的 OpenSSH 二进制,这样 touch / PIN 提示可以照常工作。
两点容易误解的地方:
- 没有单独的“Kerberos 模式”开关。对从 OpenSSH config 导入的主机,导入流程 /
ssh -G会把这个标志原样带过去,不需要你额外切换任何选项。手动填写的目标也可以在配置为使用系统 SSH 的情况下启用 GSSAPI。 - 普通密钥不会因此受影响。如果你的身份文件里只有常规 Ed25519 / ECDSA / RSA 密钥,连接仍走内置传输。
Settings 参考 的 SSH 面板也对齐了这一行为:GSSAPIAuthentication来自 OpenSSH config,并驱动系统 OpenSSH 认证。
连接前检查三项前提
这三项都来自文档中对失败场景的说明,建议按此顺序逐项确认。
1. 持有有效的 Kerberos 票据
GSSAPI 认证依赖一个仍然有效的 Kerberos 票据。文档给出的来源是kinit或你所在组织的 SSO。连接前先用klist检查:
klistklist的输出必须显示目标主机所在 realm 的有效票据。票据过期或 realm 不匹配时,即使后面的配置都对,GSSAPI 认证也会失败。
2. 机器上能找到 OpenSSH 二进制
由于这两类目标的连接由系统 OpenSSH 执行,如果本机没有可用的 OpenSSH,FIDO2 目标在 OpenSSH 安装完成之前无法认证。文档给出的可用性标准:OpenSSH 在PATH上,或位于 Windows / macOS / Linux 的常规安装位置。
3. OpenSSH config 中该 Host 带有 GSSAPI 标志
确认~/.ssh/config中对应 Host 的配置块包含:
GSSAPIAuthentication yes注意 Orca 的 OpenSSH config 选择器会搜索~/.ssh/config包括被Include进来的文件,所以标志写在被 Include 的文件里同样会被带到目标上。
在 Orca 中添加并导入 SSH 目标
- 打开Settings → SSH,点击Add Target。主机表单以模态对话框打开(不在列表下方内联展开),Host、Advanced、Save 在长主机列表下依然可达。
- 两种方式之一填写目标:
- 直接填入 host、user、port,以及可选的 identity file;
- 打开对话框里的OpenSSH config选择器,搜索
~/.ssh/config(含Include文件),选中一个主机,表单会被预填。已经在 Orca 中保存过的主机显示In Orca徽标。
- 如果密钥带口令保护,Orca 会在第一次使用时提示输入。
- 点击Test验证连通性,通过后再Save。
对 Kerberos 主机来说,选择 OpenSSH config 导入路径是关键一步:GSSAPIAuthentication yes由导入 /ssh -G流程带进目标,导入后该目标自动走系统 OpenSSH 传输,不需要也不存在单独的“Kerberos 模式”开关。
连接失败时的核对路径
文档给出的 Kerberos 登录失败排查步骤:
- 确认
klist显示目标主机 realm 的有效票据; - 确认 OpenSSH config 中该 Host 为
GSSAPIAuthentication yes; - 然后在Settings → SSH中重新导入或重新 Test该目标。
重新导入而不是只重连是有原因的:目标上的 GSSAPI 标志来自导入时的解析结果,config 变更后如果目标仍是旧数据,重连不会改变传输选择。
验证成功的信号有两个:
- 目标对话框中的Test通过;
- 远程工作树的 SSH 状态芯片为绿色(connected)。黄色为 reconnecting,红色为 disconnected,此时说明仍没有建立有效连接。
限制与边界
- OpenSSH 缺失时 FIDO2 目标无法认证,且没有替代路径——必须安装 OpenSSH 并让它位于
PATH或系统常规位置。 - 系统 OpenSSH 的启用是 Orca 依据 config 标志和密钥类型自动决定的;密钥类型检测来自身份文件本身,不需要手动声明。
- 本文只覆盖认证层(GSSAPI / 安全密钥)导致的连接失败。host key 变更、known_hosts 不匹配等是另一条错误路径(Orca 会给出对应的
ssh-keygen -R命令),见 SSH worktrees 文档的 Host key verification 一节;远程终端起不来而文件 / git 正常的问题则属于 Linux 远程缺少 C/C++ 工具链的场景,与本文的认证问题无关。
【免费下载链接】orcaOrca is the ADE for working with a fleet of parallel agents. Run any coding agent with your own subscription. Available on desktop, mobile and remote runtime.项目地址: https://gitcode.com/GitHub_Trending/orca48/orca
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考