# 接力

当一台 iPhone 和一台 iPad 使用同一个 Apple 账户时，一个实时会话可以跟着你在
两者之间移动。Tessera 交接的是**指向会话的指针 —— 绝不是密码或私钥**；每台
设备都用自己的凭据认证。

## 接力一个会话

启用**设置 → 同步与接力 → 接力会话**（默认已启用）后，你当前聚焦的已连接会话
会出现在另一台设备上 —— iPhone 上在应用切换器中，iPad 上在程序坞中。轻点它，
另一台设备就会打开同一台已保存的主机。

对于由 tmux 支撑的会话，这意味着*同一块屏幕*：两台设备接入同一个 tmux 会话，
因此接力会精确地从你刚才的位置继续。纯 SSH 或 mosh 会话无法在中途共享，所以
另一台设备会改为重新连接一个新的 —— Tessera 会如实标注这两种情况。

接力是 Apple 的机制，因此它的要求同样适用：两台设备使用同一个 Apple 账户、
打开蓝牙和 Wi-Fi，并在 iOS「设置」App 中启用「接力」。设备锁定期间会停止
广播，收到的会话会等待 Face ID。

## 在新设备上首次使用

凭据从不迁移，因此首次接力到一台此前没有连接过该主机的设备时，会出现一张凭据
卡片：请在*这台*设备上用密码认证，或[选择一个密钥](https://bambouville.com/docs/zh-hans/keys/)，它只保存在本
设备的钥匙串中。此后只需轻点一下即可继续。设备从未见过的主机会以预先填好的
编辑器形式出现 —— 不会有任何东西被悄悄保存，
[主机密钥验证](https://bambouville.com/docs/zh-hans/host-keys/#首次连接)同样适用。当这台主机的密钥与你另一台
设备已经信任的一致时，面板会告诉你 —— 但是否信任的决定仍然由你做出，而且是
按设备做出的。

## 授权本设备

除了在新设备上输入密码，凭据卡片还可以请你的另一台设备为它作保：
**在你的另一台设备上授权本设备**会通过另一台设备已经打开的会话，把新设备的
*公钥*安装到主机上。另一台设备会准确显示将要安装的内容 —— 设备、主机、密钥
指纹 —— 并要求 Face ID。设备之间不会传递密码或私钥；主机只是多认识了一个
公钥。

已注册的设备列在[密钥页面](https://bambouville.com/docs/zh-hans/keys/#设备访问)的**设备访问**下，授权可以在那里
吊销 —— Tessera 会通过你自己的访问权限把密钥从主机上移除，方式和当初安装时
一样。

## 取回控制权

当另一台设备接续了你正接入的 tmux 会话时，你的屏幕不会悄悄重排：终端会模糊，
后面浮起一张卡片，说明这个会话去了哪里，而**取回控制权** —— 轻点一下，或按
任意键 —— 会把它带回来（那次按键会被吃掉，不会输入到 shell 中）。任一台设备
都可以让出和收回；这套安排是对称的。

![一个 Tessera 会话在磨砂卡片后面变得模糊，卡片上写着「此会话正由另一台设备控制。」，并带一个取回控制权按钮。](https://bambouville.com/docs/assets/img/takeover-overlay.png)

*失去画面的那台设备会明说，并让你轻点一下就把它要回来。*

取回检测是通过 tmux 服务器本身实现的，因此主机上需要 **tmux 3.2 或更高
版本**，而且只适用于 tmux 启动模式 —— 使用自定命令的会话重新连接的是一个新
shell，没有什么可取回的。

## 什么绝不会同步

接力移动的是会话指针，并在你明确批准后安装公钥。它绝不会传输密码、私钥或
主机密钥信任 —— 每台设备各自保留自己的钥匙串和自己的
[已知主机](https://bambouville.com/docs/zh-hans/host-keys/)。要把你真正的配置迁移到新设备，请使用
[附近设置](https://bambouville.com/docs/zh-hans/nearby-setup/)。
