“尚不认识……的密钥”或“已更改”

AnyBucket 会将每台 SFTP 服务器的主机密钥与你自己的 ~/.ssh/known_hosts 比对,这也是终端使用的同一个文件。密钥是新的或已更改时,它会询问你。

尚不认识的密钥在你第一次连接某台服务器时是正常的。

  1. 在服务器管理员公布指纹的地方找到它,或者直接询问管理员。如果是你自己运行的服务器,ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub 会显示指纹。
  2. 将它与 AnyBucket 显示的指纹进行比对。
  3. 只有一致时才信任。AnyBucket 会把它添加到 known_hosts,从此终端也会认识它。

已更改的密钥在服务器重建或迁移之后是正常的。否则请不要连接:可能有人介于你和服务器之间。

  1. 向服务器管理员确认密钥确实已更改。
  2. 在终端中移除旧密钥:ssh-keygen -R example.com(使用你连接时用的主机名或地址)。
  3. 重新连接,并按上述方法检查新的指纹。

SFTP 密钥或跳板机无法使用

AnyBucket 运行 /usr/bin/ssh,也就是 macOS 自带的 ssh。只要在终端中 ssh user@host 能用,在 AnyBucket 中就能用:你的代理、你的 ~/.ssh/config(Host、IdentityFile、ProxyJump)以及安全密钥。

所以请先在终端中尝试同一台主机:

  1. 用与书签相同的用户和主机名运行 ssh user@host。
  2. 如果失败,运行 ssh -v user@host,查看它提供了哪些密钥、在哪里停下。
  3. 在终端中解决问题:用 ssh-add 把密钥添加到代理,在 ~/.ssh/config 中为这台主机设置 IdentityFile,或者为位于堡垒机之后的主机添加一行 ProxyJump。
  4. 在终端中能用之后,用相同的用户和主机名在 AnyBucket 中重新连接。

进一步了解 SSH 密钥和跳板机。

FTPS 无法连接

AnyBucket 通过一个小型 Python 桥接程序处理 FTPS 的 TLS,因此 FTPS 需要 Apple Command Line Tools 中的 python3。

  1. 打开终端,运行 python3 --version。
  2. 如果 macOS 提示安装 Command Line Tools,或者找不到该命令,请运行 xcode-select --install 并按提示操作。
  3. 重新连接。

如果是自签名证书:AnyBucket 会询问一次是否信任它,并为这个书签记住你的选择。对于你没有预料到的证书,请在信任之前先向服务器管理员确认。

仍然无法连接?请检查服务器是否在其 FTP 端口上提供显式 TLS。AnyBucket 以被动模式连接,大多数防火墙都允许这种方式。

S3 兼容存储什么也不列出或拒绝请求

Amazon S3 以外的存储需要各自的端点,而且很多都要求路径样式的地址。

  1. 编辑书签(或者选择服务商自己的卡片:Cloudflare R2、Backblaze B2、Wasabi、DigitalOcean Spaces 或 Google Cloud Storage)。
  2. 对于其他存储,请选择 S3 兼容,并设置服务商提供的端点 URL。
  3. 对于 MinIO、LocalStack 和大多数自托管存储,请打开路径样式寻址。
  4. 向服务商确认访问密钥有权列出这个存储桶。

传输停止了

临时故障,例如连接中断、超时或服务器重启,会在 1 秒、3 秒和 8 秒后自动换用新连接重试。你通常不会察觉。

仍然失败的传输会带着错误信息,在两个地方的需要处理下等待:

  • “传输”窗口(⌥⌘T)
  • 菜单栏面板

阅读错误信息,解决其原因(磁盘已满、服务器上的权限、密码过期),然后按重试。传输会继续进行。

如果你退出了 AnyBucket,或者 Mac 重新启动了,中断的传输会在你再次打开它时恢复。队列保存在 ~/Library/Application Support/AnyBucket/ 中。

没有通知

  1. 打开系统设置 → 通知,找到 AnyBucket 并允许通知。
  2. 在 AnyBucket 中打开设置 → 通知。这里会显示 macOS 是否允许通知,并为每种通知提供一个开关:批次完成、失败、连接中断、同步完成和许可证问题。

只有当 AnyBucket 在后台运行,或者一批传输耗时较长时,才会通知批次完成;你看着它完成的快速拷贝不需要通知。

AnyBucket 再次要求输入许可证

没有网络时,AnyBucket 会在最后一次成功验证许可证后继续工作七天。之后它会要求重新验证。

  1. 确保 Mac 已联网,然后打开 AnyBucket。下一次验证会重新计算这七天。
  2. 如果 Polar 拒绝了这次激活,例如因为这台 Mac 已在客户门户中被移除,请选取 AnyBucket → 管理许可证…,停用后用你的密钥重新激活。
  3. 如果你的两台 Mac 都已激活,请先停用其中一台。请参阅许可证与更新。

还是没解决?

请发送电子邮件至 support@clevermechanisms.dev。每封邮件都会有人阅读。为了尽快得到答复,请附上:

  • 你的 macOS 版本和 AnyBucket 版本,可在 AnyBucket → 关于 AnyBucket 中查看
  • 协议;如果是 S3,还请注明服务商
  • 你做了什么、预期是什么,以及确切的错误信息
  • 如果是 SFTP,ssh user@host 在终端中是否能用

请勿发送密码、秘密密钥或你的许可证密钥。