故障排查
本页介绍 Mobile SSH 的常见问题,以及在更改服务器端 SSH 设置之前应先进行的检查。
无法连接
请检查:
- 设备已联网。
- 服务器的主机名或 IP 地址正确。
- SSH 端口正确,通常为
22。 - 防火墙、VPN、运营商网络或 Wi-Fi 网络未阻止该端口。
- SSH 服务器正在运行,并接受来自你所用网络的连接。
如果同一主机在另一台设备上可用,请逐一比较主机、端口、用户名、密钥和网络路径。
认证失败
请检查:
- 用户名拼写。
- 密码或密钥口令。
- 服务器是否允许密码登录、密钥登录或两者皆可。
- 私钥是否与服务器用户
authorized_keys中的公钥匹配。 - 密钥文件是否完整导入,包括开头和结尾行。
对于加密的私钥,请在密码/口令字段中输入口令。
私钥导入失败
私钥导入使用系统文件选择器。如果导入失败:
- 确认所选文件是私钥,而非公钥
.pub文件。 - 在受信任的文本编辑器中打开文件,确认它包含完整的密钥块。
- 尝试将密钥手动粘贴到私钥字段中。
- 确认密钥类型受支持:Android 上为 Ed25519、ECDSA(P-256/384/521)或 RSA;iOS 上为 Ed25519 或 ECDSA。DSA(
ssh-dss)在两个平台上都不可用,而且 iOS 不支持 RSA——请改为生成 Ed25519 密钥。
键盘输入延迟或被更改
Mobile SSH 会在自动更正与预测建议均已关闭的情况下将按键直接发送到 shell,因此键盘不应在文本到达远程端之前改写它。如果你的键盘仍然改动了输入,请确认没有系统级的替换或剪贴板工具在拦截它,并使用额外按键行输入 ESC、TAB、CTRL、方向键、HOME、END、PGUP 和 PGDN 等终端按键。
tmux 滚动与预期不符
Mobile SSH 会根据终端状态调整滚动行为。在 tmux 或其他备用屏幕程序中,滚动手势可能发送 tmux 复制模式命令,而不是滚动本地历史记录。如果启用了 tmux 鼠标模式,应用会发送鼠标滚轮转义序列。
如果滚动效果不符合预期:
- 尝试在远程服务器上启用或关闭 tmux 鼠标模式。
- 使用额外按键行中的
PGUP和PGDN。 - 在滚动密集输出之前,双击窗格进入全屏。
- 如果远程终端大小看起来未更新,请分离并重新挂接 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 连接。短暂的宽限期可以覆盖快速的应用切换;如需更长时间,请在服务器配置中启用 Auto-attach tmux session(或使用 Eternal Terminal 传输方式),这样重新连接后就能回到你离开时的同一个 shell。
文件传输无法浏览手机文件
Mobile SSH 在 Android 上不申请任何存储权限。取而代之的是,本地窗格显示的是你通过系统文件夹选择器授权的那一个文件夹——如果它是空的,请用 Pick folder 选一个。授权会一直保留,因此这只需要做一次。
如果远程文件可以加载而本地文件无法加载,说明 SSH 连接没有问题,只是你还没有授权任何文件夹。
在 iOS 上,本地窗格显示的是应用的文档区域,你可以通过系统的文档选择器和照片选择器添加文件。那里下载的内容也会出现在「文件」应用的 我的 iPhone 下。
上传或下载失败
请检查:
- SSH 会话仍处于连接状态。
- 远程目录存在。
- 远程用户具有读取或写入该路径的权限。
- 本地目标路径可写。
- 设备上有足够的可用空间。
- 网络在大文件传输期间保持稳定。
端口转发失败
请检查:
- 本地端口在
1到65535之间。 - 本地端口尚未被占用。
- 隧道字符串格式为
PORT或LOCAL:REMOTEHOST:REMOTE。 - 远程主机和远程端口可从 SSH 服务器访问。
- SSH 服务器允许 TCP 转发。
调试日志
两个平台记录的内容并不相同,请挑选与你的问题相符的那一种。
Android —— 终端与渲染。 启用 Settings → Debugging → Show Debug and Logs buttons,然后使用起始屏幕上出现的 Debug 按钮。它会记录终端事件、SSH 数据大小、触摸输入、窗口大小调整行为和隧道生命周期。开始记录前,它会先警告你:这会捕获你敲下的每一个按键,密码也包括在内。停止记录后,它会把归档写入你的「下载」文件夹。
iOS —— 连接与重连。 打开 Settings → Diagnostics → Record debug log。它会记录每一个拨过的地址及其失败原因、重连尝试及其退避、连接断开、「对端停止响应 keepalive」、网络变化,以及 tmux 命令及其错误。设置界面会实时显示行数,便于你确认它确实在记录,Export Debug Log 可以把它作为文本文件分享出去。该日志保存在内存中,只覆盖当前这次应用运行。
在分享任何调试日志或归档之前请先检查其内容。它们用于故障排查,可能包含服务器名称、地址、时序或其他环境详情——在 Android 上,还包括你输入过的一切。