Blog
SSH, terminals, and running things on remote machines.
Stop losing work when SSH drops: tmux sessions that survive anything
Why SSH sessions die with the connection, how tmux keeps your work running on the server, and the commands that let builds and AI agents survive disconnects.
Configuring a remote machine over SSH with AI agents
How to run Claude Code or Codex CLI on a remote server over SSH: key-based access, a sandboxed user, headless authentication, and aplexer sessions for long-running jobs.
The SSH config file: ~/.ssh/config with examples
How to use the ~/.ssh/config file: host aliases, per-host keys, wildcards, ProxyJump, connection reuse and includes, with examples and debugging tips.
SSH Keys and authorized_keys: Setup and Hardening
Generate ed25519 keys with ssh-keygen, install them with ssh-copy-id, then harden the server: disable passwords and restrict each key's scope.
SSH Agent Forwarding: Setup, Risks, and Safer Paths
How SSH agent forwarding works, how to enable it with ForwardAgent and ssh-add -h, the real security risks, and when ProxyJump is the better choice.
How to Keep SSH Sessions Alive: Keepalives, tmux, Mosh
Stop SSH freezing on idle: ServerAliveInterval keepalives, server-side timeouts, tmux for detachable sessions, and when mosh is worth installing.