主機金鑰驗證
Tessera 採用初次使用即信任(TOFU):第一次連線到某台伺服器時會固定它的主機 金鑰,之後每一次連線都會拿來比對這個固定項。
首次連線
第一次連線到某台伺服器時,Tessera 會擋下來,顯示 未知主機 工作表, 上面有:
- 端點(位址與連接埠),
- 伺服器指紋(SHA-256,相容 OpenSSH),
- 金鑰類型。
請拿一個你信得過的來源核對指紋 —— 你的服務商後台,或在伺服器上執行:
ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub
然後輕點 信任並連線 將它固定,或輕點 取消 中止。在一台主機的金鑰被 信任之前,Tessera 不會在上面安裝金鑰,檔案面板也會請你先開啟一個 終端機工作階段。
信任一次就涵蓋整條連線:mosh 主機的信任是搭著它的引導 SSH 建立的,所以 tmux 側通道不會再提示一次。當你透過接續互通過來,或透過 鄰近設定匯入一台主機時,工作表還會說明這把金鑰是否與你另一 台裝置所信任的相符 —— 而當兩者不同時,工作表會把 不要連線 放在最前面。 這些資訊很有用,但固定與否仍是每台裝置各自明確的決定;信任絕不同步。
主機金鑰變更時
如果某台伺服器的金鑰與已固定的不同,Tessera 會顯示 主機金鑰已變更, 附上經典的「警告:遠端主機的識別資訊已改變!」提示、新舊兩份指紋, 以及 信任 / 取消 按鈕。
除非你清楚它為什麼變了,否則請把這當成可能的中間人攻擊 —— 合理的原因包括 重裝伺服器、更換伺服器,或刻意輪替它的主機金鑰。
已知主機頁面
已知主機 頁面(iPad 在側邊欄;iPhone 在金鑰標籤的選擇器後面)列出每一把 已固定的金鑰:主機、演算法、加入日期和狀態。篩選按鈕可以縮小列表:
- 已驗證 —— 已固定且相符,
- 已過時 —— 90 天內沒有見過,
- 已變更 —— 看到了不同的金鑰;紅色橫幅會標出這個不一致。
展開某一列可以看到它的指紋,並可 拷貝指紋、接受新金鑰 (在確認是合理變更之後),或 移除 這個固定項。移除固定項之後, 下一次連線會重新被當成初次連線。
固定項儲存在 App「Application Support」目錄下的 known_hosts.json,
以 address:port 為鍵,指紋為相容 OpenSSH 的 SHA-256。
輸出與輸入
頁首的 輸出 按鈕會把你的固定項寫成標準的 OpenSSH known_hosts 檔案 ——
只有公開主機金鑰和指紋,沒有任何機密 —— 可直接給其他任何 SSH 用戶端使用。
輸入 會讀取 known_hosts 檔案,並在合併任何東西之前列出它找到的每一個
固定項讓你檢視,因此由你決定哪些要進來;若檔案裡沒有可用的內容,它會這麼說
(「未找到可輸入的主機固定項。」)。iPad 和 iPhone 上都可以使用。