Plugin marketplace clone triggers unexplained SSH key access prompt on startup
Summary
Claude Code clones the official plugins repository (anthropics/claude-plugins-official) using SSH (git@github.com:...) instead of HTTPS. This can lead to an approval workflow for key access when SSH agents are configured, e.g., 1Password. Since this is a public repository, HTTPS access would suffice.
Problem
SSH agents like 1Password's offer a setting to prompt the user for approval before allowing key access. Every time I started Claude, 1Password asked me if I wanted to grant applications access to an SSH key.
It took a while to figure out why starting Claude Code wanted to read my SSH key; I was concerned that I had inadvertently installed some malware somehow. After some digging, I determined that the key access attempt coincides with git clone of the marketplace repo.
The main issue here is that it wasn't clear to me WHY Claude Code was trying to read my keys, and I had to drop what I was doing to see if something sketchy was happening. For that reason, I think it would be better to clone via HTTPS instead of SSH to circumvent the issue entirely.
Steps to Reproduce
- Use an SSH agent with per-use approval enabled (e.g., 1Password)
- Start Claude Code
- Observe SSH authentication prompt
Suggested Fix
Use HTTPS (https://github.com/anthropics/claude-plugins-official.git) for cloning public repositories. This requires no authentication and works regardless of SSH configuration.
Workaround
Remove the marketplace via /plugin command or allow the key access for clone one time.
Environment
- macOS
- 1Password SSH Agent
- Claude Code (latest)
Showing cached comments. Read the full discussion on GitHub ↗
8 Comments
It took me some time to figure out why, on each Claude code start, 1pass is asking for access to my SSH key.
Claude should NOT use SSH to access public repositories. SSH keys are usually passphrase-protected, which means fetching over SSH will silently fail, resulting in stale plugin data, completely the opposite of why this was introduced in the first place.
Claude should use HTTPS to access public repositories.
is there a workaround? I do not believe I have setup anything to use the plugin repository, so I have no idea where or how I could change how it is being cloned/accessed
okay, I found a workaround. You can modify
~/.claude/plugins/known_marketplaces.json:(where the ellipses are unchanged from whatever was there before)
The three edits:
I implemented the workaround in https://github.com/anthropics/claude-code/issues/14485#issuecomment-3725218624 but am still seeing Claude Code prompt for authentication. Not sure whether that's for this marketplace stuff or for "git context gathering" (as in #21108), but it's definitely a shady look.
Same issue here.
Tried to install the Notion plugin:
Got this error:
Workaround:
This forces HTTPS instead of SSH. Shouldn't need this for public repos though!
The SSH prompt occurs because the plugin marketplace clone uses
git@github.com:(SSH) instead ofhttps://github.com/(HTTPS) for public repos.Workaround 1 — Force git to use HTTPS for GitHub:
This globally rewrites SSH GitHub URLs to HTTPS, so the plugin clone happens over HTTPS without triggering your SSH agent.
Workaround 2 — Allow the key once in 1Password:
In 1Password's SSH agent settings, you can approve the key for
github.compermanently:Workaround 3 — Configure SSH agent to auto-approve for github.com:
In
~/.ssh/config:Combined with your SSH agent's per-host settings, this can avoid the interactive prompt.
Note: The real fix is for Claude Code to use HTTPS for public marketplace repos. SSH is only needed for private repos or when pushing.
Works great for private repos!
FWIW the fix in https://github.com/anthropics/claude-code/issues/14485#issuecomment-3725218624 worked for me, but you need to also do the same change in
~/.claude/settings.jsonforextraKnownMarketplaces.