Tutorial · Produktivität

API-Schlüssel sicher verwalten statt in .env-Dateien

Deine API-Schlüssel liegen im Klartext in jedem Projektordner. So legst du sie in den macOS-Schlüsselbund oder in 1Password CLI, in etwa 20 Minuten und ohne Programmierkenntnisse.

G
Georg Kinzel
18. August 2026

API-Schlüssel sicher verwalten heißt: Sie liegen an einer einzigen verschlüsselten Stelle und werden von dort in den Befehl geholt, der sie gerade braucht. Auf dem Mac reicht dafür der eingebaute Schlüsselbund, ohne Zusatzsoftware. Wer 1Password nutzt, nimmt die 1Password CLI und ersetzt die Werte in der .env durch Verweise. Beides ist in etwa 20 Minuten eingerichtet.

Das Problem: Schlüssel im Klartext, in jedem Ordner

Ein API-Schlüssel ist das Passwort für einen Dienst. Bei den meisten Setups landet er in einer Datei namens .env im Projektordner, als Klartext, Zeile für Zeile. Bei drei Projekten hast du ihn dreimal auf der Platte liegen.

Diese Dateien rutschen leichter raus, als man denkt. Du pushst dein Projekt auf GitHub und die Datei ist mit dabei. Du machst einen Screenshot vom Terminal und der Schlüssel steht im Bild. Du lässt einen KI-Agenten über deinen Ordner laufen und der liest alles mit, was dort liegt.

Wie groß das Thema ist, hat GitHub selbst beziffert: Über 39 Millionen Zugangsdaten wurden im Jahr 2024 auf GitHub geleakt, so der GitHub-Blog. Für dich ist der unangenehme Teil daran, dass die Rechnung beim Anbieter trotzdem auf deinen Namen läuft.

Weg 1: Der Schlüsselbund, den dein Mac schon hat

Der Schlüsselbund ist der Passwortspeicher von macOS. Er speichert verschlüsselt und wird beim Anmelden aufgeschlossen. Du kannst ihn über die App „Passwörter” bedienen oder über das Terminal, und für API-Schlüssel ist das Terminal der schnellere Weg.

Schlüssel ablegen. Öffne das Terminal und tippe:

security add-generic-password -s anthropic -a georg -w

Hinter -s steht der Name, unter dem du den Eintrag später wiederfindest, hinter -a dein Benutzername oder deine Mailadresse. Das -w am Ende ohne Wert sorgt dafür, dass macOS dich nach dem Schlüssel fragt, statt ihn in deine Terminal-Historie zu schreiben. Füg ihn ein und drück Enter. Wenn du den Eintrag später überschreiben willst, hängst du ein -U an, sonst meckert der Befehl, dass es ihn schon gibt.

Schlüssel abrufen. Zum Testen:

security find-generic-password -s anthropic -w

Der Schlüssel erscheint im Terminal. Falls macOS dabei nach deinem Anmeldepasswort fragt, ist das der normale Zugriffsschutz des Schlüsselbunds.

Schlüssel in einem Befehl nutzen. Statt den Wert irgendwo hinzuschreiben, setzt du ihn direkt vor den Befehl, der ihn braucht:

ANTHROPIC_API_KEY="$(security find-generic-password -s anthropic -w)" mein-programm

Die Klammer-Konstruktion $( ) bedeutet: Führ den Befehl darin aus und setz sein Ergebnis an diese Stelle. Der Schlüssel existiert damit nur für die Dauer dieses einen Befehls.

Du kannst die Zeile auch als export ANTHROPIC_API_KEY="$(security find-generic-password -s anthropic -w)" in deine ~/.zshrc legen, dann steht der Schlüssel in jedem Terminal-Fenster bereit. Bequem ist das, sicher weniger: Der Wert hängt dann in der Umgebung jedes Programms, das du aus diesem Fenster startest. Für den Alltag empfehle ich die Variante pro Befehl. Wenn du einen Schlüssel ständig brauchst, bau dir stattdessen ein Kürzel:

alias claudestart='ANTHROPIC_API_KEY="$(security find-generic-password -s anthropic -w)" claude'

Weg 2: 1Password CLI, wenn du ohnehin 1Password nutzt

Der Schlüsselbund lebt auf einem Mac. Sobald du zwei Rechner hast oder Schlüssel mit jemandem teilst, ist ein Passwort-Manager der bessere Ort. 1Password bringt dafür ein Terminal-Werkzeug mit, das den Schlüssel direkt an einen Befehl durchreicht.

Installieren. Mit Homebrew geht das in einer Zeile, danach prüfst du die Version (1Password-Doku):

brew install 1password-cli
op --version

App-Integration anschalten. Damit du dich nicht jedes Mal neu anmelden musst, verbindest du die CLI mit der 1Password-App: App öffnen und entsperren, oben in der Seitenleiste dein Konto auswählen, dann Einstellungen > Entwickler und dort Mit 1Password CLI integrieren aktivieren. Wer Touch ID nutzt, schaltet es hier gleich mit ein. Ob es geklappt hat, siehst du an op vault list, das zeigt dir deine Tresore.

Schlüssel ablegen und referenzieren. Leg den API-Schlüssel als normalen Eintrag in 1Password an, so wie ein Passwort. Jedes Feld in 1Password hat eine Adresse, eine sogenannte Secret Reference, die so aussieht:

op://Privat/Anthropic/credential

Der Aufbau ist op://Tresor/Eintrag/Feld. Du musst sie nicht abtippen: In der 1Password-App kannst du die Referenz zu einem Feld direkt kopieren.

Die .env-Datei umbauen. Statt echter Werte stehen dort ab jetzt nur noch Referenzen:

ANTHROPIC_API_KEY="op://Privat/Anthropic/credential"
OPENAI_API_KEY="op://Privat/OpenAI/credential"

Diese Datei enthält kein Geheimnis mehr. Sie darf auf GitHub landen, ohne dass etwas passiert.

Programm starten. Den Befehl, der die Schlüssel braucht, startest du jetzt über op run:

op run --env-file="./.env" -- mein-programm

1Password löst die Referenzen auf und startet dein Programm in einem Unterprozess, in dem die Schlüssel nur für dessen Laufzeit als Umgebungsvariablen existieren (1Password-Doku). Die zwei Bindestriche trennen dabei die Optionen von op run und deinem eigentlichen Befehl.

Brauchst du nur einen einzelnen Wert, etwa in einem kleinen Skript, holst du ihn mit op read op://Privat/Anthropic/credential (1Password-Doku).

Alte Schlüssel aufräumen

Der neue Tresor bringt wenig, solange die alten Kopien noch herumliegen. Drei Dinge zum Abhaken:

  1. Prüf, ob .env in deiner .gitignore steht. Fehlt der Eintrag, trag .env dort ein. Das verhindert, dass die Datei bei einem Push mitgeht.
  2. Rotiere jeden Schlüssel, der schon mal draußen war. Bei jedem Anbieter gibt es eine Seite für API-Schlüssel. Dort erzeugst du einen neuen, legst ihn in den Tresor und löschst den alten. Solange der alte gültig ist, nützt dir jede Vorsicht danach nichts.
  3. Leer die alten .env-Dateien. Werte raus, Referenz rein oder Datei weg. Denk auch an Kopien in Downloads, in alten Projektordnern und in Notiz-Apps.

Wenn du dabei ohnehin gerade aufräumst: Beim Setup-Checkup für Claude Code fällt so etwas meist mit auf.

Wie sicher ist das wirklich

Beide Wege sorgen dafür, dass deine Schlüssel nicht mehr als Klartext auf der Platte liegen und nicht mehr aus Versehen in ein Repository, einen Screenshot oder den Kontext eines KI-Agenten geraten. Das deckt die Fälle ab, in denen Schlüssel tatsächlich am häufigsten verloren gehen.

Ein Hochsicherheitsversprechen ist es trotzdem nicht. Ein Programm, das mit deinen Benutzerrechten läuft, kann an die Umgebung anderer Prozesse desselben Benutzers herankommen. Darauf weist 1Password in der eigenen Doku ausdrücklich hin (1Password-Doku). Wer sich Schadsoftware einfängt oder einem Werkzeug blind alle Rechte gibt, ist auch mit Tresor nicht sauber raus. Für KI-Agenten gehört deshalb dazu, ihnen von vornherein enge Berechtigungen zu setzen.

Für wen lohnt sich welcher Weg

Der Schlüsselbund ist die richtige Wahl, wenn du auf einem Mac arbeitest und deine Schlüssel für dich allein nutzt. Er ist schon installiert und in zehn Minuten eingerichtet.

Zur 1Password CLI greifst du, wenn du 1Password ohnehin bezahlst, auf mehreren Geräten arbeitest oder Zugänge im Team teilst. Der Aufwand ist etwas höher, dafür bleibt die .env-Datei als Struktur erhalten und funktioniert auf jedem Rechner, an dem 1Password eingerichtet ist.

Nicht zwingend nötig ist das Ganze, wenn du überhaupt keine API-Schlüssel hast, also KI nur über die Weboberfläche oder eine App nutzt. Sobald du das erste Werkzeug im Terminal einrichtest, kommt der erste Schlüssel. Dann lohnt es sich, ihn gleich richtig abzulegen.

Newsletter

Willst du wissen, welche KI-Tools wirklich halten, was sie versprechen, und welche du dir sparen kannst? Im Newsletter teste ich jede Woche neue Tools und schicke dir ehrlich die, die zählen.

👉 Zum Newsletter anmelden

Mehr Anleitungen findest du in der Tutorial-Übersicht.

Quellen

  1. GitHub found 39M secret leaks in 2024 (GitHub Blog)
  2. Load secrets into the environment (1Password CLI Docs)
  3. Get started with 1Password CLI (1Password CLI Docs)
  4. Load secrets into scripts (1Password CLI Docs)

18. August 2026. KI-Tools, Preise und Funktionen ändern sich schnell. Vor wichtigen Entscheidungen den aktuellen Stand direkt beim Anbieter prüfen.

Transparenz. Dieser Beitrag ist mit KI-Unterstützung entstanden und von mir geprüft. Das Beitragsbild ist KI-generiert. Genau mit diesen Workflows arbeite ich, und genau die zeige ich hier.

Einmal pro Woche per Mail

Im Newsletter fasse ich zusammen, welche KI-Tools sich lohnen und welche Neuigkeiten zählen. Verständlich, kostenlos.

Zum Newsletter

Häufige Fragen

Was ist eine .env-Datei überhaupt?
Eine einfache Textdatei im Projektordner, in der Einstellungen als Name-gleich-Wert stehen, zum Beispiel ANTHROPIC_API_KEY=sk-ant-... Programme lesen sie beim Start aus. Das Problem: Der Schlüssel steht darin im Klartext und jedes Programm mit Zugriff auf den Ordner kann ihn mitlesen.
Brauche ich Programmierkenntnisse für den Schlüsselbund-Weg?
Nein. Du tippst zwei Befehle im Terminal, einen zum Ablegen und einen zum Abrufen. Beide kannst du kopieren und nur den Namen des Dienstes anpassen. Der Schlüsselbund ist auf jedem Mac schon installiert, du musst nichts zusätzlich einrichten.
Was macht der Befehl op run genau?
op run startet ein Programm in einem Unterprozess und stellt die Schlüssel aus 1Password nur für die Laufzeit dieses Prozesses als Umgebungsvariablen bereit. Danach sind sie wieder weg. Im Projekt steht dann nur noch eine Referenz wie op://Privat/Anthropic/credential, kein echter Schlüssel.
Muss ich meinen alten API-Schlüssel wegwerfen, wenn er in einer .env-Datei lag?
Wenn die Datei jemals auf GitHub, in einer Cloud oder auf einem Screenshot gelandet ist, ja. Dann erzeugst du beim Anbieter einen neuen Schlüssel und löschst den alten. Lag sie nur lokal auf deinem Rechner, reicht es, sie zu leeren und den Schlüssel künftig aus dem Tresor zu ziehen.