故障排查
本页介绍 Mobile SSH 的常见问题,以及在更改服务器端 SSH 设置之前应先进行的检查。
无法连接
请检查:
- 设备已联网。
- 服务器的主机名或 IP 地址正确。
- SSH 端口正确,通常为
22。 - 防火墙、VPN、运营商网络或 Wi-Fi 网络未阻止该端口。
- SSH 服务器正在运行,并接受来自你所用网络的连接。
如果同一主机在另一台设备上可用,请逐一比较主机、端口、用户名、密钥和网络路径。
服务器身份需要处理
两个平台均在发送凭据前检查 SSH 服务器身份。iOS 新主机密钥须确认指纹并选择信任并重连。Android 的设置 → 常规 → 安全 → 自动接受新的 SSH 身份默认开启:首次原始密钥自动保存,之后必须匹配。关闭该选项即可在连接前检查新指纹。
通过可信渠道向管理员核对新增或改变密钥的 SHA-256 指纹。密钥变化可能表示服务器已更换,也可能连接到了意外服务器;验证变化前不要删除旧身份。可在设置中查看保存的身份,备用地址和跳板机不会绕过验证。
Android 还支持限定范围的主机证书颁发机构和吊销记录。即使开启自动接受首次身份,未知机构、过期或无效证书及吊销密钥仍会被阻止。iOS 的设置 → 服务器身份 → 导入已吊销密钥接受限定范围的 OpenSSH @revoked Ed25519/ECDSA 条目。混合了不支持条目的粘贴内容会全部拒绝;CA 条目、证书、RSA 密钥和散列主机名不受支持。新连接和重连时吊销优先于原有信任,但不关闭已有连接。身份及吊销记录均不纳入备份。iOS 分享扩展上传前,须先在主应用验证未知服务器。
无法通过跳板机连接
检查每台保存的堡垒机地址和凭据,并确保手机可达第一跳。后续主机须从上一台可达。堡垒机必须允许继续 TCP 转发,包括满足 permitopen 限制。路由须使用 SSH、无循环,展开后最多八跳。
堡垒机已删除或无法解析时,不会回退为直连。修复保存的路由后重连。Android 连接状态和登录日志分别标明失败的跳点与最终服务器。
认证失败
请检查:
- 用户名拼写。
- 密码或密钥口令。
- 服务器是否允许密码登录、密钥登录或两者皆可。
- 私钥是否与服务器用户
authorized_keys中的公钥匹配。 - 密钥文件是否完整导入,包括开头和结尾行。
对于加密的私钥,请在密码/口令字段中输入口令。
Android 远程 ssh 或 git 需要在已保存服务器启用转发 SSH 代理,且服务器允许代理转发。只提供已保存且可用的密钥凭据。待处理的允许/拒绝或安全密钥提示可暂停该连接的终端、传输和隧道最多 30 秒;请在应用或通知中回复。
私钥导入失败
私钥导入使用系统文件选择器。如果导入失败:
- 确认所选文件是私钥,而非公钥
.pub文件。 - 在受信任的文本编辑器中打开文件,确认它包含完整的密钥块。
- 尝试将密钥手动粘贴到私钥字段中。
- 确认密钥类型受支持:Android 上为 Ed25519、ECDSA(P-256/384/521)或 RSA;iOS 上为 Ed25519 或 ECDSA。DSA(
ssh-dss)在两个平台上都不可用,而且 iOS 不支持 RSA——请改为生成 Ed25519 密钥。
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 鼠标模式,应用会发送鼠标滚轮转义序列。
如果滚动效果不符合预期:
- 尝试在远程服务器上启用或关闭 tmux 鼠标模式。
- 使用扩展按键栏中的
PGUP和PGDN。 - 在滚动密集输出之前,双击窗格进入全屏。
- 如果远程终端大小看起来未更新,请分离并重新附加 tmux。
Android 在标准复制模式标记可见时,滚动到底部会自动退出应用管理的 tmux 复制模式。没有该标记的自定义或分割布局可能仍需手动退出。切换会话时同时检查管理器选择的服务器、tmux 套接字和会话名。
锁屏后会话断开
在 Android 上,Mobile SSH 使用保活、前台服务、唤醒锁、Wi-Fi 锁和重连尝试来减少断线。但 Android 的电池策略仍可能停止后台工作。
请检查:
- 如果你的设备会激进地停止后台应用,请为 Mobile SSH 关闭电池优化。
- 在长时间会话期间保持 Wi-Fi 或移动数据稳定。
- 解锁后重新打开 Mobile SSH,点按 Active Sessions。
- 如果你希望把应用从最近任务中划掉后 shell 仍继续运行,请确认设置中的 Keep sessions running in background 已开启。
- 如果服务器已断开 SSH 会话,请从主界面重新连接——Continue 列出仍然活动的连接,Tmux sessions 列出在服务器上等待的会话。
iOS 会挂起后台应用,所以切换应用或锁屏后原始 SSH 连接无法无限保持。短暂宽限期可覆盖快速切换。将服务器连接时附加设为 tmux、Herdr 或 Zellij,或使用 Eternal Terminal,可在重连后恢复远程工作。多路复用器须仍在服务器运行;Eternal Terminal 不支持跳板机路由。
文件传输无法浏览手机文件
Mobile SSH 在 Android 上不申请任何存储权限。取而代之的是,本地窗格显示的是你通过系统文件夹选择器授权的那一个文件夹——如果它是空的,请用 Pick folder 选一个。授权会一直保留,因此这只需要做一次。
如果远程文件可以加载而本地文件无法加载,说明 SSH 连接没有问题,只是你还没有授权任何文件夹。
iOS 本地窗格最初显示应用文档区。我的手机 → 选择本地文件夹可选择并记忆“文件”中的其他文件夹。提供方或授权不可用时,重新选择或切换回应用文件夹。应用文件夹下载位于我的 iPhone,外部文件仍位于其提供方原位置。备份不转移文件夹权限。
上传或下载失败
请检查:
- SSH 会话仍处于连接状态。
- 远程目录存在。
- 远程用户具有读取或写入该路径的权限。
- 本地目标路径可写。
- 设备上有足够的可用空间。
- 网络在大文件传输期间保持稳定。
端口转发失败
请检查:
- 本地端口在
1到65535之间。 - 本地端口尚未被占用。
- 隧道字符串格式为
PORT或LOCAL:REMOTEHOST:REMOTE。 - 远程主机和远程端口可从 SSH 服务器访问。
- SSH 服务器允许 TCP 转发。
Android VPN 或代理未传输流量
- 从 VPN 启动所需配置并批准 Android VPN 请求。启动设备 VPN 会替换之前的 VPN;若须保留其他 VPN,请使用本地 SOCKS5 代理。
- SSH VPN 须检查保存的 SSH 服务器、跳板机、服务器身份和 TCP 转发权限,以及应用和网站选择。SSH 承载 TCP 和 DNS,不支持一般 UDP。
- SOCKS5 客户端须配置回环地址、端口、密码和远程 DNS。启动代理不会自动重定向所有应用。
- WireGuard 须检查对端握手、密钥、
AllowedIPs和 DNS。Shadowsocks 须匹配服务器的加密方式/密码,并确认 DNS 可用的 UDP 中继。 - OpenVPN 须使用受支持的自包含配置,验证 CA/服务器身份和凭据,并为全隧道提供 VPN DNS。修正认证或证书错误后,停止再启动配置。
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 上,还包括你输入过的一切。