devops: load the signing key from the Keychain, an empty agent prompts - #79
Merged
Conversation
`gpg.format = ssh` signs through `ssh-keygen -Y sign`, which asks ssh-agent for the private half of user.signingkey and only falls back to reading the key file — and prompting — when the agent has not got it. macOS starts every login with an empty agent, so that fallback is the normal case: the first commit after a reboot asks for a passphrase, usually from the IDE, which has nowhere to ask. `make git` now stores the passphrase with --apple-use-keychain, and the macOS rc loads it back with --apple-load-keychain, guarded on the agent already holding keys.
Owner
Author
|
@claude do the review in here |
|
Claude finished @landsman's task in 1m 49s —— View job Review
Went through the diff ( Makefile (
os/macos/.zshrc (
README.md
General
Nothing here blocks merging — the one suggestion (surfacing an |
A Ctrl-C at the passphrase prompt left `make git` finishing quietly, and the only sign of it is the next reboot prompting for a passphrase again — which reads as the signing setup never having worked. Still not fatal: the rest of the target is worth writing either way.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
gpg.format = sshsigns throughssh-keygen -Y sign, which asks ssh-agent for the private half ofuser.signingkeyand only falls back to reading the key file — and prompting — when the agent has not got it. macOS starts every login with an empty agent, so that fallback is the normal case: the first commit after a reboot asks for a passphrase, usually from the IDE, which has nowhere to ask. Verified both directions on this Mac: with the key in the agentssh-keygen -Y signsigns silently, withSSH_AUTH_SOCKunset it prompts.make gitstores the passphrase in the login Keychain withssh-add --apple-use-keychain, Darwin only — the flag is Apple's.os/macos/.zshrcloads it back with--apple-load-keychain, guarded onssh-add -lso a shell that already has a populated agent pays one fork and no Keychain round trip.make qapasses.