故障排查

本页介绍 Mobile SSH 的常见问题,以及在更改服务器端 SSH 设置之前应先进行的检查。

无法连接

请检查:

如果同一主机在另一台设备上可用,请逐一比较主机、端口、用户名、密钥和网络路径。

服务器身份需要处理

两个平台均在发送凭据前检查 SSH 服务器身份。iOS 新主机密钥须确认指纹并选择信任并重连。Android 的设置 → 常规 → 安全 → 自动接受新的 SSH 身份默认开启:首次原始密钥自动保存,之后必须匹配。关闭该选项即可在连接前检查新指纹。

通过可信渠道向管理员核对新增或改变密钥的 SHA-256 指纹。密钥变化可能表示服务器已更换,也可能连接到了意外服务器;验证变化前不要删除旧身份。可在设置中查看保存的身份,备用地址和跳板机不会绕过验证。

Android 还支持限定范围的主机证书颁发机构和吊销记录。即使开启自动接受首次身份,未知机构、过期或无效证书及吊销密钥仍会被阻止。iOS 的设置 → 服务器身份 → 导入已吊销密钥接受限定范围的 OpenSSH @revoked Ed25519/ECDSA 条目。混合了不支持条目的粘贴内容会全部拒绝;CA 条目、证书、RSA 密钥和散列主机名不受支持。新连接和重连时吊销优先于原有信任,但不关闭已有连接。身份及吊销记录均不纳入备份。iOS 分享扩展上传前,须先在主应用验证未知服务器。

无法通过跳板机连接

检查每台保存的堡垒机地址和凭据,并确保手机可达第一跳。后续主机须从上一台可达。堡垒机必须允许继续 TCP 转发,包括满足 permitopen 限制。路由须使用 SSH、无循环,展开后最多八跳。

堡垒机已删除或无法解析时,不会回退为直连。修复保存的路由后重连。Android 连接状态和登录日志分别标明失败的跳点与最终服务器。

认证失败

请检查:

对于加密的私钥,请在密码/口令字段中输入口令。

Android 远程 ssh 或 git 需要在已保存服务器启用转发 SSH 代理,且服务器允许代理转发。只提供已保存且可用的密钥凭据。待处理的允许/拒绝或安全密钥提示可暂停该连接的终端、传输和隧道最多 30 秒;请在应用或通知中回复。

私钥导入失败

私钥导入使用系统文件选择器。如果导入失败:

Android 安全密钥无响应

Android 通过 USB 或 NFC 支持 CTAP2/FIDO2 ed25519-sk 和 ecdsa-sk 凭据。使用创建该导入凭据的同一把实体密钥。USB 需要主机支持和授权;NFC 须开启,操作完成前密钥须持续贴住手机。按提示输入 PIN 并触摸密钥。

服务器需要 OpenSSH 8.2 或更高版本并允许所选 sk-* 算法。不支持仅 U2F 密钥及驻留凭据发现。寻找密钥时服务器登录可能超时,请在连接前准备好。后台请求可打开安全密钥通知或返回应用。iOS 不支持硬件安全密钥认证。

键盘输入延迟或被更改

Android 直接发送键盘输入,关闭自动更正和预测建议。iOS 默认开启听写和建议,支持语音和当前行更正。如果意外改写 shell 输入,在设置中关闭它并检查键盘建议,再打开新窗格使设置生效。

使用扩展按键栏输入 ESC、TAB、CTRL、方向键、HOME、END、PGUP 和 PGDN。网络停滞也会延迟输入。Android 窗格标题显示无响应或未发送;重连期间的输入会丢弃,不会在新 shell 中重放。等待连接,检查提示符后只重新输入必要内容。

tmux 滚动与预期不符

Mobile SSH 会根据终端状态调整滚动行为。在 tmux 或其他备用屏幕程序中,滚动手势可能发送 tmux 复制模式命令,而不是滚动本地历史记录。如果启用了 tmux 鼠标模式,应用会发送鼠标滚轮转义序列。

如果滚动效果不符合预期:

Android 在标准复制模式标记可见时,滚动到底部会自动退出应用管理的 tmux 复制模式。没有该标记的自定义或分割布局可能仍需手动退出。切换会话时同时检查管理器选择的服务器、tmux 套接字和会话名。

锁屏后会话断开

在 Android 上,Mobile SSH 使用保活、前台服务、唤醒锁、Wi-Fi 锁和重连尝试来减少断线。但 Android 的电池策略仍可能停止后台工作。

请检查:

iOS 会挂起后台应用,所以切换应用或锁屏后原始 SSH 连接无法无限保持。短暂宽限期可覆盖快速切换。将服务器连接时附加设为 tmux、Herdr 或 Zellij,或使用 Eternal Terminal,可在重连后恢复远程工作。多路复用器须仍在服务器运行;Eternal Terminal 不支持跳板机路由。

文件传输无法浏览手机文件

Mobile SSH 在 Android 上不申请任何存储权限。取而代之的是,本地窗格显示的是你通过系统文件夹选择器授权的那一个文件夹——如果它是空的,请用 Pick folder 选一个。授权会一直保留,因此这只需要做一次。

如果远程文件可以加载而本地文件无法加载,说明 SSH 连接没有问题,只是你还没有授权任何文件夹。

iOS 本地窗格最初显示应用文档区。我的手机 → 选择本地文件夹可选择并记忆“文件”中的其他文件夹。提供方或授权不可用时,重新选择或切换回应用文件夹。应用文件夹下载位于我的 iPhone,外部文件仍位于其提供方原位置。备份不转移文件夹权限。

上传或下载失败

请检查:

端口转发失败

请检查:

Android VPN 或代理未传输流量

SSH VPN、Shadowsocks 和 OpenVPN 可在重连时继续阻止捕获的流量,不回退为直连;停止即结束保护。VPN 无法绕过服务器供应商或管理员施加的互联网限制。

备份未恢复全部内容

检查导入预览及选择的合并或替换行为。旧版或部分备份中缺少的整个区域保持原状。完整备份包含受支持的应用偏好,Android 另含 VPN 和代理配置。平台专属项目不一定可移植到 iOS,旧版应用也可能拒绝新版完整备份格式。

服务器身份、系统权限和所选文件夹授权保留在本设备。新设备须重新验证主机并授予文件夹/VPN 权限。硬件密钥凭据仍需实体密钥。导入配置不会启动 VPN;启动前请检查恢复的配置。

远程桌面不可用或无法调整大小

从已连接 SSH 会话打开桌面查看器,检查服务器允许本地 TCP 转发。Linux 按缺少软件包的提示安装桌面/VNC 软件。Android 无法镜像 Wayland 控制台,请使用受支持的虚拟桌面。

在 Mac 设置中启用屏幕共享。Android 支持 Mac 账户认证;iOS 需要在屏幕共享中启用传统 VNC 密码访问,使用屏幕共享密码,而非 Mac 账户密码。查看器显示 Mac 的现有屏幕,分辨率可能需要在 Mac 上更改。虚拟桌面仅在服务器支持时可实时调整;重启应用创建的桌面需要确认,且会关闭其中运行的程序。退出查看器后远程桌面继续运行。

调试日志

两个平台记录的内容并不相同,请挑选与你的问题相符的那一种。

Android —— 终端与渲染。 启用 Settings → Debugging → Show Debug and Logs buttons,然后使用主界面上出现的 Debug 按钮。它会记录终端事件、SSH 数据大小、触摸输入、终端尺寸调整行为和隧道生命周期。开始记录前,它会先警告你:这会捕获你敲下的每一个按键,密码也包括在内。停止记录后,它会把归档写入你的「下载」文件夹。

iOS —— 连接与重连。 打开 Settings → Diagnostics → Record debug log。它会记录尝试过的每一个地址及其失败原因、重连尝试及其退避、连接断开、「对端停止响应 keepalive」、网络变化,以及 tmux 命令及其错误。设置界面会实时显示行数,便于你确认它确实在记录,Export Debug Log 可以把它作为文本文件分享出去。该日志保存在内存中,只覆盖当前这次应用运行。

在分享任何调试日志或归档之前请先检查其内容。它们用于故障排查,可能包含服务器名称、地址、时序或其他环境详情——在 Android 上,还包括你输入过的一切。