bambouville

接續互通

只要 iPhone 和 iPad 使用同一個 Apple 帳戶,進行中的工作階段就能跟著你在兩者 之間移動。Tessera 交接的是 指向工作階段的指標 —— 絕不是密碼或私密金鑰; 每台裝置都用自己的憑證進行驗證。

接續一個工作階段

只要啟用 設定 → 同步與接力 → 接續工作階段(預設就是開的),你目前聚焦的 已連線工作階段就會出現在另一台裝置上 —— iPhone 上在 App 切換器裡,iPad 上在 Dock 裡。輕點它,另一台裝置就會打開同一台已儲存的主機。

對於以 tmux 為底的工作階段,這代表同一個畫面:兩台裝置接入同一個 tmux 工作階段,因此接續會從你剛才停下的地方繼續。純 SSH 或 mosh 工作階段無法在 串流途中共享,因此另一台裝置會改為重新連線 —— Tessera 會誠實地標示這兩種 情況。

接續互通用的是 Apple 的機制,所以它的條件也適用:兩台裝置使用同一個 Apple 帳戶、開啟藍牙和 Wi-Fi,並在 iOS「設定」App 中啟用「接續互通」。裝置鎖定期間 會停止廣播,而收到的工作階段會等待 Face ID。

在新裝置上的第一次

憑證絕不會移動,因此第一次接續到一台從未連過該主機的裝置時,會出現一張憑證卡: 在這台裝置上以密碼驗證,或挑一把金鑰,而且只會儲存在這台裝置的 鑰匙圈中。之後,接續就只需要輕點一下。裝置從未見過的主機會以預先填好的編輯器 形式抵達 —— 不會有任何東西被悄悄儲存,而且 主機金鑰驗證仍然適用。當主機的金鑰與你另一台裝置 已信任的相符時,工作表會這麼說 —— 但要不要信任仍由你決定,而且是逐台裝置決定。

授權此裝置

除了在新裝置上輸入密碼之外,憑證卡也可以請你的另一台裝置替它作保: 在你的另一台裝置上授權本裝置 會透過另一台裝置已經開啟的工作階段, 把新裝置的公開金鑰安裝到主機上。另一台裝置會明確顯示將要安裝什麼 —— 裝置、主機、金鑰指紋 —— 並要求 Face ID。裝置之間不會傳遞任何密碼或私密金鑰; 主機只是多學到了一把公鑰而已。

已登錄的裝置會列在金鑰頁面裝置存取 之下, 在那裡可以撤銷授權 —— Tessera 會用你自己的存取權把金鑰從主機上移除, 方式和當初安裝時一樣。

取回控制權

當另一台裝置接續你正接入的 tmux 工作階段時,你的畫面不會悄悄重排:終端機會 模糊化,後面浮出一張卡片說明工作階段去了哪裡,而 取回控制權 —— 輕點一下,或按任意鍵 —— 就能把它帶回來(那個按鍵會被吃掉,不會被輸入到 shell)。兩台裝置都可以讓出並收回;這個安排是對稱的。

一個 Tessera 工作階段模糊化後,前方是一張霧面卡片,上面寫著「此工作階段正由另一台裝置控制。」,並有一個取回控制權按鈕。
失去畫面的那台裝置會說出來,並讓你一點就能拿回去。

取回控制權的偵測是透過 tmux 伺服器本身完成的,因此主機上需要 tmux 3.2 或以上版本,而且只適用於 tmux 啟動模式 —— 自訂指令的工作階段會 重新連上一個全新的 shell,所以沒有什麼可以取回。

絕不同步的東西

接續互通移動的是工作階段指標,並在你明確同意後安裝公開金鑰。它絕不會傳送 密碼、私密金鑰或主機金鑰的信任關係 —— 每台裝置都保有自己的鑰匙圈和自己的 已知主機。若要把你真正的設定搬到新裝置,請使用 鄰近設定