主機與連線
主機編輯器
按 ⌘N 新增主機,或輕點既有主機來編輯。編輯器有四個標籤 —— 連線、進階、轉發、指令片段 —— 以及一條 連線 列。在 iPhone 上, 同樣的四個區塊以按鈕形式呈現 —— 連線、進階、通道、指令片段 —— 其中連線欄位和通道規則會先暫存,直到你輕點儲存為止(其他編輯則如同 iPad 上 一樣立即套用);兩種裝置上的編輯器是同一個。
「連線」標籤放的是基本資料:名稱、位址、連接埠(1–65535)、 使用者、身分(來自金鑰頁面的一把金鑰)和 密碼。 你在這裡輸入的密碼只作用於本次工作階段:它只保留在進行中的工作階段裡, 絕不會持久化。唯一的例外是透過鄰近設定或 接續互通建立、且以密碼驗證的主機 —— 你在新裝置上輸入一次的 密碼會以已儲存憑證的形式保存在這台裝置的鑰匙圈中,絕不同步,而且編輯器之後 仍可修改它(儲存後會取代已存的密碼)。
傳輸方式:SSH 或 Mosh
每台主機只選一種傳輸方式:
- ssh —— 單一 SSH 連線;tmux 分頁留在主工作階段上。
- mosh —— 基於 UDP 的 mosh 終端機。mosh 讓工作階段在 Wi-Fi ↔ 行動網路漫遊
以及睡眠/喚醒之間持續存活,在丟包嚴重的線路上也更跟手。它需要主機上已安裝
mosh-server。tmux 分頁會使用第二條 SSH 側通道。 mosh 頁面有完整說明,包括真正的回捲緩衝。
mosh 的 UDP 流量無法穿過堡壘機:如果你透過跳板主機使用 mosh, 而 mosh 伺服器無法連上,Tessera 會告訴你 (「經跳板鏈無法存取 mosh…」)並改用 SSH 重新連線。
啟動模式
- 自動 tmux —— 接入(或建立)該主機專屬的 tmux 工作階段,名稱為決定性的
tessera-XXXXXXXX,即使重新安裝 App 也會記得。這是預設值,也是讓斷線變得 無關痛癢的那一個。 - 具名 tmux —— 接入你自己指定名稱的 tmux 工作階段;含有無效字元的名稱會 回退成自動推導的名稱。
- 自訂 —— 一條照字面執行的啟動指令。透過 ssh 時會送給登入 shell;
透過 mosh 時則由
mosh-server new -- <command>執行。
tmux 模式帶來什麼,請見 tmux;啟動模式如何與通道互動,請見 連接埠轉發。
跳板主機
任何已儲存的主機都可以當成 SSH 堡壘機(ProxyJump):在主機編輯器中選擇即可。 串接是可以巢狀的 —— 跳板主機自己的跳板主機會延長整條鏈 —— 編輯器會顯示最終 路徑(「a → b → 主機」),並在鏈斷掉時提出警告。
- 每一跳都各自獨立驗證,使用自己的身分或密碼。需要密碼的跳會在編輯器的跳板 主機區段中出現 密碼 · <跳的名稱> 欄位,只保留在進行中的工作階段裡; 在每一跳都填好之前,連線按鈕會維持停用。
- 主機金鑰提示會逐跳出現,堡壘機優先,每一次都會指明正在驗證哪個端點。
- 斷掉的鏈會安全地失敗:如果某台跳板主機被刪除,依賴它的主機會在編輯器中提出 警告,而且連線會直接失敗,而不是悄悄改走直連。錯誤訊息會指出它來自哪一跳 (「跳板主機 <名稱>:…」)。
- 在免費方案下,另外儲存的堡壘機會自己佔用一個已儲存 主機的名額。
進階標籤
- 系統標誌 —— 連線時自動偵測,或手動設定(macos、ubuntu、debian、alpine、 linux、raspbian)。
- 標籤 和 備註 —— 供你自己整理用。
- 環境變數 —— 每行一組
KEY=value;開頭若有export會被去掉。這些值會 原封不動傳給遠端 shell ——$HOME、$(…)和引號都照寫的樣子生效。 - 終端機背景 —— 針對單一主機覆蓋全域背景。
環境變數和啟動指令片段只在 tmux 工作階段啟動時執行。如果你改了某台主機的 設定,而它的 tmux 工作階段已經存在,請在伺服器上結束該工作階段,才能套用 這些更改。
指令片段
「指令片段」標籤放的是 啟動指令片段:連線之後立即送出的指令 (上面提到的 tmux 注意事項同樣適用)。
連線卡住時
工作階段建立的過程中,啟動覆蓋層會標示目前所處的階段 —— 正在連線, 接著對 tmux 主機是 正在啟動 tmux(SSH)或 正在接入 tmux(mosh), 然後是 正在接入窗格。如果某個階段大約十二秒都沒有進展,覆蓋層會說明卡在 哪一階段(「仍在 正在連線 — 交握尚未完成。」),並且給你一條出路,而不是一直 轉圈:
- 編輯主機 —— 開啟主機編輯器,適用於位址、連接埠或金鑰有問題時,
- 重試 —— 拆掉這次嘗試,從頭重新連線,
- 返回 —— 放棄並回到主機列表。從卡住的嘗試退出會完整中斷連線 —— 伺服器上不會留下任何東西在跑。
計時器是逐階段計算的,因此仍在推進的慢速連線永遠不會誤觸。如果是 tmux 本身 起不來 —— 沒有安裝、工作階段無法啟動,或主機自己的 dotfiles 已經在登入時啟動 tmux —— Tessera 會把你丟進一個純 shell,並以橫幅明確說明發生了什麼事, 而不是傻等一個永遠不會回應的 tmux。
工作階段
Tessera 可以同時對任意主機保持多個工作階段。自動 tmux 的主機是單例的 —— 每台主機一個 tmux 控制工作階段(具名 tmux 則是每台主機加每個工作階段名稱 一個)—— 而自訂指令的主機可以有好幾個(「名稱 #2」、「名稱 #3」)。側邊欄的 進行中 區塊會列出每一個工作階段,標示為「名稱 (tmux)」、 「名稱 (tmux: 工作階段名稱)」或「名稱 #N」,每一項都有中斷連線按鈕。 在 iPhone 上,同一份列表就是 工作階段 標籤。
輕點即可在工作階段之間切換,也可以用 ⌘⇧K / ⌘⇧J 逐一走訪相鄰項目,
或開啟 ⌘K 快速切換面板:輸入即可篩選工作階段(最近使用的排前面)和智慧體
—— 在查詢前加上 @ 可限定為智慧體。
工作階段回復
設定 → 終端機 → 啟動 → 先前的連線 控制全新啟動時會發生什麼事:
- 詢問 —— 顯示「重新打開先前的連線」工作表,選項為 「始終重新打開」/「重新打開」/「稍後再說」。
- 一律 —— 靜默重新連線。
- 永不 —— 從乾淨狀態開始。
在 iPhone 上,這個選擇工作表換成單一個 啟動時回復 開關。只有金鑰材料完整 的已儲存主機工作階段才能回復。
回到前景的處理方式相同,但更聰明:Tessera 會等 每一個 開啟中的工作階段都 回報自己的狀態,才決定要重新連線哪些,所以當好幾台主機同時掉線 —— 或某個 mosh 工作階段拖了很久才承認自己已經死掉 —— 每一個都會被重新連上,沒有一個被丟下。 在這段期間,啟動覆蓋層會把其餘的數出來(「+2 個工作階段正在重新連線」)。 Tessera 刻意只有單一視窗(iPad 上沒有多場景);側邊欄和面板 —— 在 iPhone 上則是標籤列與切換器 —— 就是你四處移動的方式。