getsops/sops · error
failed to obtain public %q key for %q SSH key: %w
Error message
failed to obtain public %q key for %q SSH key: %w
What it means
Error "failed to obtain public %q key for %q SSH key: %w" thrown in getsops/sops.
Source
Thrown at age/ssh_parse.go:31
import (
"fmt"
"io"
"os"
"filippo.io/age"
"filippo.io/age/agessh"
"golang.org/x/crypto/ssh"
)
// readPublicKeyFile attempts to read a public key based on the given private
// key path. It assumes the public key is in the same directory, with the same
// name, but with a ".pub" extension. If the public key cannot be read, an
// error is returned.
func readPublicKeyFile(privateKeyPath string) (ssh.PublicKey, error) {
publicKeyPath := privateKeyPath + ".pub"
f, err := os.Open(publicKeyPath)
if err != nil {
return nil, fmt.Errorf("failed to obtain public %q key for %q SSH key: %w", publicKeyPath, privateKeyPath, err)
}
defer f.Close()
contents, err := io.ReadAll(f)
if err != nil {
return nil, fmt.Errorf("failed to read %q: %w", publicKeyPath, err)
}
pubKey, _, _, _, err := ssh.ParseAuthorizedKey(contents)
if err != nil {
return nil, fmt.Errorf("failed to parse %q: %w", publicKeyPath, err)
}
return pubKey, nil
}
// parseSSHIdentityFromPrivateKeyFile returns an age.Identity from the given
// private key file. If the private key file is encrypted, it will configure
// the identity to prompt for a passphrase.
func parseSSHIdentityFromPrivateKeyFile(keyPath string) (age.Identity, error) {
keyFile, err := os.Open(keyPath)View on GitHub (pinned to 13442bb981)
When it happens
Trigger: Thrown at age/ssh_parse.go:31 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of getsops/sops@13442bb981 (2026-09-01).
Data as JSON: /api/errors/6af1835af4e816f5.
Report an issue: GitHub.