tterminal

iPhone 與 iPad 上的 SSH 終端機。中文打得順,同步走你自己的伺服器。

開始使用

新增主機

  1. 首頁右上角點伺服器圖示,進到 Vaults。
  2. 在 Hosts 分頁按 新增 Host,填名稱、位址、Port、使用者。
  3. 認證方式選 密碼 或 SSH 金鑰。選「無」的話,連線時再在終端機裡輸入。
  4. 儲存後回首頁,點主機就會連線。

常用的主機可以在 Vaults 裡按星號釘選,首頁會排在最上面。

主機指紋

第一次連到一台主機時,app 會記下它的指紋。之後如果指紋變了,連線會直接被擋下來,因為這可能代表有人在中間攔截。

這時畫面會並列「記住的指紋」和「這次收到的指紋」。如果是你自己重灌了主機或換了主機金鑰,先在伺服器上執行 ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub,跟「這次收到的指紋」逐字核對。一致的話按 我確認主機換過了,改用新指紋,勾選已核對後就會改用新指紋重新連線,不用刪掉主機。

也可以在 Vaults 編輯主機,在「主機指紋」按 清除 再儲存;改了位址或 Port 時會自動清除。清除後,下次連線會重新記住。

SSH 金鑰

  1. Vaults → Keys → 產生金鑰。類型用預設的 Ed25519 就好,要連不支援 Ed25519 的舊伺服器才選 RSA。passphrase 可以留空。
  2. 產生完會直接顯示公鑰,按 複製公鑰,加到伺服器的 ~/.ssh/authorized_keys。還沒有其他方法登入那台主機的話,可以先用密碼連上,在終端機裡把公鑰加進去。
  3. 編輯主機,認證方式改成 SSH 金鑰並選這把。

已經有金鑰的話,改按 新增 Key,貼上 OpenSSH 或 PEM 格式的私鑰,有 passphrase 就一起填。之後要再拿公鑰,在 Keys 列表按複製鈕即可。

在終端機裡

切到別的 app 時

切去回個訊息再回來,連線多半還在。app 在背景時,動態島和鎖定畫面會顯示目前有幾條連線。

iOS 只給 app 有限的背景時間,離開太久系統還是會把 app 暫停,連線就會中斷。回來後在首頁再點一次主機重新連線即可。需要長時間跑的工作,建議在伺服器上開 tmux,斷線重連後 tmux attach 就能接回去。

iPad 與 iPhone Duo

螢幕夠寬的時候(iPad、iPhone Duo 展開),畫面會分成兩欄:左邊連線列表,右邊終端機,左邊點一下就能切換連線。想讓終端機用滿整個畫面,按左欄右上角的按鈕收起來。

iPhone Duo 半摺時,版面會對齊摺痕:直立半開是左右兩欄,平放半開則是終端機在上半、功能鍵和鍵盤在下半。

多台裝置同步

tterminal 不用註冊帳號。想在多台裝置之間同步主機和金鑰,需要自己架一台同步伺服器。

建議的架法:放在家裡一直開著的設備上(NAS、樹莓派、家用伺服器、Mac mini 都可以),不要開 port 對外。出門在外時,用 VPN 連回家再同步,例如 Tailscale 或 WireGuard。這樣網路上沒人連得到你的伺服器,資料又本來就是加密的,最安心。

在那台機器上,有 Docker 的話一行指令就好:

docker run -d --name tterm-sync -p 8722:8722 \
  -v tterm-data:/data --restart unless-stopped \
  ghcr.io/tterminal-app/tterminal-sync:latest
  1. 第一台裝置:設定 → 同步,輸入 http://<伺服器位址>:8722,按 建立同步。用 Tailscale 的話,位址填伺服器在 Tailscale 裡的名稱或 100.x 開頭的 IP,在家在外都通。
  2. 按 匯出配對字串 並複製。
  3. 其他裝置:設定 → 同步 → 貼上配對字串加入。

資料在裝置上就先加密,伺服器只存得到密文。配對字串裡有解密金鑰,只在自己的裝置之間傳,不要貼到別的地方。另外 iOS 同時只能開一個 VPN,平常有開別的 VPN 的話,同步時記得切到連回家的那一個。更多細節(包含一定要放公網時怎麼加 HTTPS)見 伺服器的 GitHub 頁面。

常見問題

連不到家裡區網的主機

到 iPhone 的 設定 → 隱私權與安全性 → 區域網路,確認 tterminal 有打開。第一次連區網主機時系統會詢問,如果當時按了不允許,就要從這裡打開。

連線時出現主機指紋不符

代表這台主機的身分跟上次不一樣。如果你沒有動過主機,請先別連,確認一下網路環境(例如是不是連到了陌生的 Wi-Fi)。如果是你自己重灌或換了主機,照上面「主機指紋」的方法核對新指紋後改用即可,不用刪掉主機。

同步失敗

先確認手機連得到伺服器:用 Safari 開 http://<伺服器位址>:8722/v1/health,應該會看到 {"ok":true,...}。區網的伺服器也需要上面提到的區域網路權限。

可以在手機上開本機的 shell 嗎?

不行。iOS 不允許 app 執行其他程式,所以 tterminal 在 iPhone 和 iPad 上只做 SSH 連線。

試用結束後會怎樣?

主機、金鑰、Vaults 和同步都會留著,照樣可以看、可以改,也會繼續同步;只有開新的 SSH 連線需要先解鎖。解鎖是一次性購買,包含之後所有 1.x 更新。沒有訂閱,試用結束也不會自動扣款。

換手機或重裝之後,怎麼恢復購買?

到 設定 → 試用與解鎖 → 恢復購買,用當初購買的那個 Apple 帳號就好,解鎖畫面上也有同一個按鈕。試用的起算日同樣跟著 Apple 帳號,重裝或換手機不會重新計算。

會收集我的資料嗎?

不會。tterminal 沒有帳號、沒有分析工具、沒有廣告。主機和金鑰只存在你的裝置上,開了同步也只會送到你自己的伺服器,而且是加密過的。詳見 隱私權政策。

回報問題

遇到 bug 或想要什麼功能,請到 GitHub Issues 開一則。附上 iOS 版本、機型和怎麼重現,會比較快找到原因。