kubernetes/kops · error
error deleting SSH public key: %v
Error message
error deleting SSH public key: %v
What it means
RunDeleteSSHPublicKey obtains the cluster's SSHCredentialStore and calls DeleteSSHCredential, which removes the cluster's SSH public key entry. Any error from the store is wrapped as "error deleting SSH public key: %v". Note it deletes the whole SSH credential, not a key by name.
Source
Thrown at cmd/kops/delete_sshpublickey.go:81
func RunDeleteSSHPublicKey(ctx context.Context, f *util.Factory, out io.Writer, options *DeleteSSHPublicKeyOptions) error {
clientset, err := f.KopsClient()
if err != nil {
return err
}
cluster, err := GetCluster(ctx, f, options.ClusterName)
if err != nil {
return err
}
sshCredentialStore, err := clientset.SSHCredentialStore(cluster)
if err != nil {
return err
}
if err := sshCredentialStore.DeleteSSHCredential(); err != nil {
return fmt.Errorf("error deleting SSH public key: %v", err)
}
return nil
}
View on GitHub (pinned to 4c8573c808)
Solutions
- Check the wrapped %v message: not-found means no key to delete, so nothing to do
- Verify the key exists: kops get sshpublickey --name <cluster>
- Fix state store access/permissions, then retry the delete
Example fix
// before (blind delete) kops delete sshpublickey --name mycluster.k8s.local --yes // after (verify first) kops get sshpublickey --name mycluster.k8s.local kops delete sshpublickey --name mycluster.k8s.local --yes
Defensive patterns
Strategy: try-catch
Validate before calling
kops get sshpublickey --name mycluster.k8s.local # confirm a key exists
Try / catch
err := RunDeleteSSHPublicKey(ctx, f, out, opts)
if err != nil && strings.Contains(err.Error(), "error deleting SSH public key") {
// not-found means nothing to delete; other causes need state store fixes
log.Printf("ssh public key delete failed: %v", err)
} Prevention
- Verify a key exists with kops get sshpublickey before deleting
- Remember this deletes the cluster's whole SSH credential, not one key by name
- Check state store credentials and write permissions before the delete
When it happens
Trigger: sshCredentialStore.DeleteSSHCredential() fails: no SSH credential exists for the cluster, state store is unreachable, or permissions prevent writing the deletion.
Common situations: Running `kops delete sshpublickey` on a cluster that has no SSH public key published; state store credential/permission issues; wrong --name pointing to a cluster without keys.
Related errors
- error adding SSH public key: %v
- listing SSH credentials %v
- error creating cluster: %v
- error querying cluster %q: %v
- must specify %q label with cluster name to create SSHCredent
AI-assisted analysis of kubernetes/kops@4c8573c808 (2026-09-05).
Data as JSON: /api/errors/e35f82c77ad6c213.
Report an issue: GitHub.