Tagged
#SSH
2 posts
-
macOS GUI Terminal vs. SSH Sessions: Why launchctl managername Matters
Open Terminal sitting at your Mac, then SSH into the same machine as the same user — both spawn what looks like the same zsh, but they behave very differently: keychain unlock state, environment variables, TCC permissions, pbcopy, TouchID, osascript notifications all diverge. Every one of those differences traces back to a single thing — whether launchctl managername reports Aqua or Background. This post walks through the gotchas you actually hit, the launchd domain machinery underneath, and how to make SSH sessions behave more like GUI ones when you're treating a Mac as a server.
-
macOS SSH and Claude Code "Logged Out": The Keychain Unlock Fix
SSH into a Mac, fire up Claude Code, and get prompted to /login — even though you're already signed in at the GUI Terminal and tmux sessions sometimes hit the same thing. It's not a Claude Code bug; it's the macOS login keychain not being unlocked in non-GUI sessions. One security unlock-keychain command fixes it. This post covers why SSH triggers it, why the command works, and other tools (gh, git, docker, codesign…) that hit the same wall.