接力
当一台 iPhone 和一台 iPad 使用同一个 Apple 账户时,一个实时会话可以跟着你在 两者之间移动。Tessera 交接的是指向会话的指针 —— 绝不是密码或私钥;每台 设备都用自己的凭据认证。
接力一个会话
启用设置 → 同步与接力 → 接力会话(默认已启用)后,你当前聚焦的已连接会话 会出现在另一台设备上 —— iPhone 上在应用切换器中,iPad 上在程序坞中。轻点它, 另一台设备就会打开同一台已保存的主机。
对于由 tmux 支撑的会话,这意味着同一块屏幕:两台设备接入同一个 tmux 会话, 因此接力会精确地从你刚才的位置继续。纯 SSH 或 mosh 会话无法在中途共享,所以 另一台设备会改为重新连接一个新的 —— Tessera 会如实标注这两种情况。
接力是 Apple 的机制,因此它的要求同样适用:两台设备使用同一个 Apple 账户、 打开蓝牙和 Wi-Fi,并在 iOS「设置」App 中启用「接力」。设备锁定期间会停止 广播,收到的会话会等待 Face ID。
在新设备上首次使用
凭据从不迁移,因此首次接力到一台此前没有连接过该主机的设备时,会出现一张凭据 卡片:请在这台设备上用密码认证,或选择一个密钥,它只保存在本 设备的钥匙串中。此后只需轻点一下即可继续。设备从未见过的主机会以预先填好的 编辑器形式出现 —— 不会有任何东西被悄悄保存, 主机密钥验证同样适用。当这台主机的密钥与你另一台 设备已经信任的一致时,面板会告诉你 —— 但是否信任的决定仍然由你做出,而且是 按设备做出的。
授权本设备
除了在新设备上输入密码,凭据卡片还可以请你的另一台设备为它作保: 在你的另一台设备上授权本设备会通过另一台设备已经打开的会话,把新设备的 公钥安装到主机上。另一台设备会准确显示将要安装的内容 —— 设备、主机、密钥 指纹 —— 并要求 Face ID。设备之间不会传递密码或私钥;主机只是多认识了一个 公钥。
已注册的设备列在密钥页面的设备访问下,授权可以在那里 吊销 —— Tessera 会通过你自己的访问权限把密钥从主机上移除,方式和当初安装时 一样。
取回控制权
当另一台设备接续了你正接入的 tmux 会话时,你的屏幕不会悄悄重排:终端会模糊, 后面浮起一张卡片,说明这个会话去了哪里,而取回控制权 —— 轻点一下,或按 任意键 —— 会把它带回来(那次按键会被吃掉,不会输入到 shell 中)。任一台设备 都可以让出和收回;这套安排是对称的。
取回检测是通过 tmux 服务器本身实现的,因此主机上需要 tmux 3.2 或更高 版本,而且只适用于 tmux 启动模式 —— 使用自定命令的会话重新连接的是一个新 shell,没有什么可取回的。
什么绝不会同步
接力移动的是会话指针,并在你明确批准后安装公钥。它绝不会传输密码、私钥或 主机密钥信任 —— 每台设备各自保留自己的钥匙串和自己的 已知主机。要把你真正的配置迁移到新设备,请使用 附近设置。