{"record":{"id":"7236f4684cac8546","repo":"kubernetes/kops","slug":"use-kops-get-sshpublickey-instead","errorCode":null,"errorMessage":"use 'kops get sshpublickey' instead","messagePattern":"use 'kops get sshpublickey' instead","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"cmd/kops/get_secrets.go","lineNumber":106,"sourceCode":"\t\tnameSet := sets.NewString(names...)\n\t\tvar matches []string\n\t\tfor _, item := range items {\n\t\t\tif nameSet.Has(item) {\n\t\t\t\tmatches = append(matches, item)\n\t\t\t}\n\t\t}\n\t\titems = matches\n\t}\n\n\treturn items, nil\n}\n\nfunc RunGetSecrets(ctx context.Context, f *util.Factory, out io.Writer, options *GetSecretsOptions) error {\n\tswitch strings.ToLower(options.Type) {\n\tcase \"\", \"secret\":\n\t// OK\n\tcase \"sshpublickey\":\n\t\treturn fmt.Errorf(\"use 'kops get sshpublickey' instead\")\n\tcase \"keypair\":\n\t\treturn fmt.Errorf(\"use 'kops get keypairs' instead\")\n\tdefault:\n\t\treturn fmt.Errorf(\"unknown secret type %q\", options.Type)\n\t}\n\n\tclientset, err := f.KopsClient()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tcluster, err := GetCluster(ctx, f, options.ClusterName)\n\tif err != nil {\n\t\treturn err\n\t}\n\tsecretStore, err := clientset.SecretStore(cluster)\n\tif err != nil {\n\t\treturn err","sourceCodeStart":88,"sourceCodeEnd":124,"githubUrl":"https://github.com/kubernetes/kops/blob/4c8573c808a73d578c5eadc86d410646ea0b0d73/cmd/kops/get_secrets.go#L88-L124","documentation":"RunGetSecrets rejects the type 'sshpublickey' because SSH public keys were moved to their own dedicated command. The legacy `kops get secrets --type sshpublickey` path is no longer supported; users must use `kops get sshpublickey`.","triggerScenarios":"Running `kops get secrets --type sshpublickey` (case-insensitive match).","commonSituations":"Older scripts or docs written before the sshpublickey subcommand split; muscle memory from kops versions where keys were managed as secrets.","solutions":["Run `kops get sshpublickey` instead of `kops get secrets --type sshpublickey`","Update automation scripts to use the dedicated subcommand"],"exampleFix":"// before\nkops get secrets --type sshpublickey\n\n// after\nkops get sshpublickey","handlingStrategy":"validation","validationCode":"if [ \"$SECRET_TYPE\" = \"sshpublickey\" ]; then\n  echo \"use 'kops get sshpublickey' instead\"; exit 1\nfi","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Migrate scripts from `get secrets --type sshpublickey` to `kops get sshpublickey`","Check `kops get secrets --help` before scripting"],"tags":["cli","kops","deprecated-command","ssh"],"backgroundTag":"deprecated-command","analyzedSha":"4c8573c808a73d578c5eadc86d410646ea0b0d73","analyzedAt":"2026-09-05T04:13:19.212Z","contentChangedAt":"2026-09-05T04:13:19.212Z","schemaVersion":2},"datasetVersion":"2026-09-12T07:17:12.445Z"}