在 mac 前面打開 Terminal 跟從別台電腦 SSH 進來,看起來都是同一個帳號的 zsh,行為卻差很多:keychain 解鎖狀態、環境變數、TCC 權限、pbcopy、TouchID、osascript 通知全部不一樣。這些差異的根源都能用 launchctl managername 回報的 Aqua 或 Background 看出來。這篇整理實際會踩到哪些差異、背後的 launchd domain 機制,還有把 mac 當伺服器時如何讓 SSH session 更接近 GUI 行為。
macOS GUI Terminal 與 SSH 差在哪|launchctl managername 深入解析
macOS SSH 連線 Claude Code 顯示未登入|keychain 未解鎖解法
從其他電腦 SSH 進 mac mini 要用 Claude Code,啟動後卻被要求 /login,但明明在本機 Terminal 已經登入過也正常能用,偶爾透過 tmux 進 session 也會遇到一樣狀況。這是 macOS login keychain 在非 GUI session 沒被解鎖造成的通用問題,用 security unlock-keychain 就能解決。這篇會說明為什麼 SSH session 會踩到、指令為什麼有效,還有 gh、git、docker、codesign 等其他同類型會踩雷的情境。