文件传输

Mobile SSH 包含一个与活动 SSH 连接绑定的 SFTP 文件传输屏幕。它用于从手机或平板电脑进行快速的服务器维护:上传配置、下载日志、重命名远程文件或查看权限,而无需离开应用。

打开文件传输

  1. 连接到 SSH 服务器。
  2. 选择已连接的终端窗格。
  3. 从终端工具栏打开 Transfer,或在当前屏幕支持时长按窗格标题。
  4. 文件传输屏幕会打开,包含本地窗格和远程窗格。

如果没有活动的 SSH 会话,则无法打开文件传输。

本地与远程窗格

文件传输屏幕有两个浏览窗格:

应用会按主机记住最近十个远程路径——在 Android 上从远程窗格的标题栏打开它们,在 iOS 上则点按时钟图标。两个窗格的排序设置也会按主机记住。本地路径没有历史记录:在 Android 上,本地窗格就是你授权的那个文件夹;在 iOS 上,它是应用自己的文档区域。

文件传输屏幕会跟随你的系统浅色或深色主题,因此与 Mobile SSH 的其余部分保持一致。

每个会话从哪里打开(Android)

如果你从一个已附加到 tmux 会话的窗格打开文件传输,远程窗格会回到该会话上次工作的目录,并在窗格标题中标出会话名。对于此前没有从其打开过的会话,则会从你在该主机上最常用的目录开始,其次是该主机上次所在的目录,再次是你的主目录。

如果记住的目录后来被删除了,应用会沿着这个列表依次向下尝试,直到某个目录确实能列出内容,而不是把你丢在一个错误页面上——并且不会把无效路径写回去。在 iOS 上,每台主机只记住一个远程目录。

存储访问

Mobile SSH 在两个平台上都不会申请笼统的存储权限。

在 Android 上,你用系统的文件夹选择器授权一个文件夹,下载的内容会写入其中——那是其他所有应用本来就能读取的位置。该授权在重新启动后依然有效。

在 iOS 上,本地窗格就是应用的文档区域,文件通过系统的文档与照片选择器导入。

在 iOS 上,本地窗格使用应用自己的文档区域,你可以通过系统的文档选择器和照片选择器导入文件——包括对照片和文档的多选导入。无需单独的存储权限。

私钥导入与文件传输分开,使用系统文件选择器。

上传文件

  1. 打开本地窗格。
  2. 导航到你要上传的文件。
  3. 选择上传。
  4. 确认远程目标。
  5. 在传输队列中查看进度和完成情况。

上传使用现有的 SSH/SFTP 连接。如果连接断开,请在重连后重试。

下载文件

  1. 打开远程窗格。
  2. 导航到你要下载的文件。
  3. 选择下载。
  4. 确认本地目标。
  5. 在传输队列中查看进度和完成情况。

大文件下载应尽量在稳定的网络下进行。

复制整个文件夹

上传和下载不限于单个文件。选择一个文件夹,Mobile SSH 会在两个方向上复制整个子目录树——从手机到远程以及从远程到手机——先创建目标目录,再将每个文件加入队列。无法读取的子目录不会中断其余复制;在 Android 上,它会以一条内容为「Can’t list directory」的失败记录报告出来,而 iOS 会继续执行,但不会列出被跳过的内容。

远程文件操作

根据所选的远程项目,Mobile SSH 可显示以下操作:

远程文件详情可包含权限位、所有者、所属组和八进制权限值。在更改由其他进程或部署工具管理的服务器文件之前,请先查看这些详情。

文件大小以二进制单位显示,因此与隔壁标签页终端里 ls -h 打印出来的结果一致。

排序与最近路径

每个窗格都可按名称或日期升序或降序排序。Mobile SSH 会按主机存储所选的本地和远程排序方式以及最近路径,因此对同一服务器的重复传输会从熟悉的位置开始。

传输队列

传输会排入队列并按状态显示,日志会逐条列出每一次传输并可滚动——Android 将其分为 Queued / Failed / Successful 三个标签页,iOS 则分为 Active / Failed / Done。当底层 SFTP 操作提供原因时,失败的传输会包含原因。在 iOS 上,正在传输的文件会固定在 Active 标签页顶部,并且可以在传输过程中取消某一条。

把文件从应用里取出来

把文件送进会话(Android)

Android 接受从其他任意应用分享进来的文件:分享到 Mobile SSH,文件就会被上传到该窗格所在主机的 ~/.cache/mobile-ssh,其远程路径会自动输入到提示符处,你可以立刻使用。终端工具栏中的 📎 按钮从系统文件选择器做同样的事,两者都支持一次多个文件。

在 iOS 上,用 + 按钮把文件导入本地窗格,再从那里上传。

实用提示