← ClaudeAtlas

server-connectlisted

Gives Claude Code non-interactive SSH access to a server and then writes a server-info folder by interrogating the machine — services, ports, deploy paths, logs, databases — rather than being told. Use when adding a dev or production server to a workspace, onboarding onto infrastructure nobody documented, or when Claude cannot reach a machine it needs. Trigger: "connect to the server", "set up ssh", "document this server", "add the dev server", "why can't you reach the box".
makieali/claude-code-engineer · ★ 0 · DevOps & Infrastructure · score 72
Install: claude install-skill makieali/claude-code-engineer
# Server Connect — Reachable, Then Written Down Two jobs, in this order: 1. **Make the server reachable by name**, non-interactively, so no session ever stalls on a prompt it cannot answer. 2. **Write down what is on it**, by looking rather than by asking, into `server-info/`. The second is the part people skip, and it is the part that pays. A session that has to rediscover which service runs on which port every time is a session spending its context on archaeology. --- ## SAFETY RULES — read before running anything - **Read-only until told otherwise.** Discovery does not restart services, edit configs, or touch a database. Every command in Step 5 is safe to run on production. - **`server-info/` is never committed.** Verify it is gitignored *before* writing into it. - **Never write a discovered secret into the notes.** Record that `DATABASE_URL` is set; never record its value. Record the path to the env file, not its contents. - **Irreversible actions are gated on a human**: service restarts on production, migrations, firewall changes, package upgrades, anything touching data. - Nothing here goes in a public repository. Real hostnames and usernames are the reason. --- ## STEP 1: GENERATE A KEY — no passphrase, and here is the honest tradeoff ```bash KEY=~/.ssh/<project>-<env> # e.g. ~/.ssh/acme-dev — one key per server, never reused ssh-keygen -t ed25519 -N "" -C "claude-code@<project>-<env>" -f "$KEY" chmod 600 "$KEY" ``` `-N ""` means **no pass