Skip to content

Runner: SSH identity on Sergeys-Mac-mini resolves to a deploy key, breaking git clone over SSH #684

Description

@serge-ivo

Problem

On the runner node Sergeys-Mac-mini.local, the SSH key presented to GitHub authenticates as jobsearch-works/shared — a repository deploy key, not the user's account. Any git clone git@github.com:... for a private repo outside that one repository therefore fails with "Repository not found", which is GitHub's generic message for "authenticated, but this identity cannot see it". The failure is misleading: it looks like the repo is missing when it is really a wrong-identity problem.

Observed

Cloning proappstore-online/school-clubs over SSH failed this way. The same clone succeeded immediately via gh repo clone over HTTPS, which uses GITHUB_TOKEN and authenticates as serge-ivo, an identity that can see the repo.

Consequence

Two different GitHub identities are active on the same machine depending on transport: a narrow deploy key over SSH and a broad user token over HTTPS. Any coding run that happens to use an SSH remote will silently get the wrong, much weaker identity. Existing checkouts with SSH remotes may fail to fetch or push for reasons that appear to be missing repositories.

Suggested Work

  • Audit which identity each transport resolves to on every registered runner node.
  • Decide and document the intended identity for agent git operations.
  • Surface the effective git identity in coding_diagnostics so this is visible without a failed clone, and consider reporting it per transport.
  • Where a deploy key is genuinely wanted, scope it to the repo that needs it rather than leaving it as the default SSH identity.

Related

This is adjacent to the credential-scope concerns in #676: the credential an agent actually operates with is not currently visible before it is used.

Cross-reference #676.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2: correctnessReal defect, no live harm today — inert fields, miscounts, missing guardsbugSomething isn't workingcoderThe Coder wedge agent (#68) — Engine, Pilot, Co-pilot, Loop, Overseerrunnerpackages/browser-runner + packages/cli — ships only via an npm publishsecuritySecurity hardening / audit finding

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions