Datei hochladen
  1. base64hub
  2. Web- & Token-Tools
  3. .dockerconfigjson-Decoder

.dockerconfigjson-Decoder für Image-Pull-Secrets

Fügen Sie ein Secret vom Typ kubernetes.io/dockerconfigjson, seinen Base64-Wert oder eine ~/.docker/config.json ein, um zu sehen, bei welcher Registry und mit welchem Konto es sich anmeldet.

Kostenlos ohne Anmeldung, ohne Limits Lokal kein Upload Zwei Schichten Base64 des Secrets und das auth-Feld, beide dekodiert Aktualisiert 27.10.2026

Wird in Ihrem Browser verarbeitet. Diese Seite kann Ihre Daten nirgendwohin senden – woher wir das wissen

So dekodieren Sie ein Pull-Secret

  1. Fügen Sie eines davon in die Eingabe ein:
    • die Ausgabe von kubectl get secret regcred -o yaml
    • nur den Base64-Wert von .dockerconfigjson
    • das JSON selbst, zum Beispiel Ihre ~/.docker/config.json
  2. Zuerst werden die Registry-Zugangsdaten aufgelistet: Registry, Benutzername, Passwort und der Wert auth, aufgeteilt in Benutzer und Passwort.
  3. Um stattdessen ein Secret zu erstellen, öffnen Sie Pull-Secret erstellen und füllen Registry, Benutzername, Passwort und bei Bedarf E-Mail (optional) aus. Das Ergebnis ist dasselbe Secret, das kubectl create secret docker-registry schreibt.

Das doppelte Base64 in einem Pull-Secret

Ein Pull-Secret verpackt Base64 in Base64, deshalb braucht das Dekodieren von Hand zwei Schritte.

apiVersion: v1
kind: Secret
metadata:
  name: regcred
type: kubernetes.io/dockerconfigjson
data:
  .dockerconfigjson: eyJhdXRocyI6eyJyZWdpc3RyeS5leGFtcGxlLmNvbSI6eyJ1c2VybmFtZSI6ImNpLWJvdCIsInBhc3N3b3JkIjoicHVsbC1vbmx5LXRva2VuIiwiYXV0aCI6Ilkya3RZbTkwT25CMWJHd3RiMjVzZVMxMGIydGxiZz09In19fQ==

Schicht eins, der Wert des Secrets, wird zum JSON der Docker-Konfiguration dekodiert:

{"auths":{"registry.example.com":{"username":"ci-bot","password":"pull-only-token","auth":"Y2ktYm90OnB1bGwtb25seS10b2tlbg=="}}}

Schicht zwei, auth, wird zu ci-bot:pull-only-token dekodiert. Ein mit kubectl create secret docker-registry erzeugter Wert von .dockerconfigjson beginnt mit eyJhdXRocyI6, dem Base64 von {"auths":, deshalb sind solche Zeichenketten in Logs und Manifesten leicht zu erkennen.

Formate, denen Sie begegnen können

FormWoher sie stammt
{"auths": {"host": {...}}}.dockerconfigjson, aktuelle ~/.docker/config.json
{"host": {"auth": "...", "email": "..."}}alte .dockercfg-Secrets (kubernetes.io/dockercfg)
"https://index.docker.io/v1/" als HostDocker Hub
identitytoken statt eines PasswortsRegistrys, die nach docker login OAuth-Refresh-Tokens ausgeben

Beide Secret-Typen werden hier dekodiert. Ein altes .dockercfg hat keine Hülle auths, ein für das eine Format geschriebenes Skript findet im anderen also stillschweigend nichts.

Dekodieren in der Shell

kubectl get secret regcred -o jsonpath='{.data.\.dockerconfigjson}' | base64 --decode | jq .
kubectl get secret regcred -o jsonpath='{.data.\.dockerconfigjson}' | base64 --decode \
  | jq -r '.auths | to_entries[] | "\(.key) \(.value.auth | @base64d)"'

Der zweite Befehl gibt pro Registry eine Zeile registry user:password aus. Der Wert auth hat dasselbe Format wie ein Basic-Auth-Header, daher liest ihn auch der Basic-Auth-Decoder.

Warum ein Pull-Secret scheitert

  • Falscher Registry-Schlüssel. Der Host in auths muss zur Image-Referenz passen: ghcr.io/org/app braucht ghcr.io, und Images von Docker Hub brauchen https://index.docker.io/v1/.
  • Secret in einem anderen Namespace. imagePullSecrets findet nur Secrets im eigenen Namespace des Pods.
  • Abgelaufenes Token. Manche Registrys geben kurzlebige Passwörter aus; Tokens von Amazon ECR etwa gelten 12 Stunden. Ein Secret, das gestern funktioniert hat, führt dann heute zu ImagePullBackOff.
  • Von Hand gebautes JSON. Ein Passwort, das mit Zeilenumbruch oder Leerzeichen am Ende kopiert wurde, oder ein auth-Wert aus der falschen Zeichenkette scheitert stillschweigend. Vergleichen Sie das dekodierte auth mit den Feldern für Benutzername und Passwort, oder erstellen Sie das Secret mit kubectl create secret docker-registry neu.

Wer das Secret lesen kann, kann das Konto benutzen, denn Base64 verbirgt nichts. Geben Sie Pull-Secrets nur Registry-Tokens mit Lesezugriff.

Häufige Fragen

Wie dekodiere ich ein imagePullSecret?

Fügen Sie oben die Ausgabe von kubectl get secret regcred -o yaml ein. In der Shell gibt kubectl get secret regcred -o jsonpath='{.data.\.dockerconfigjson}' | base64 --decode das JSON aus, und dessen Feld auth ist noch einmal Base64.

Was ist das Feld auth in der config.json?

Es ist username:password in Base64, dasselbe Format wie ein HTTP-Basic-Authorization-Header. Y2ktYm90OnB1bGwtb25seS10b2tlbg== wird zu ci-bot:pull-only-token dekodiert.

Warum ist mein auths-Eintrag in ~/.docker/config.json leer?

Docker legt das Passwort in einem Credential Helper ab, wenn credsStore oder credHelpers gesetzt ist, etwa im Schlüsselbund des Systems. Die Datei enthält dann pro Registry nur {}, und es gibt nichts zu dekodieren.