Zum Inhalt springen
ecdsa.com
OpenSSH client (ssh, ssh-add, scp, git over SSH)SSH

Fehlermeldung

WARNING: UNPROTECTED PRIVATE KEY FILE!

Auch ausgegeben als

  • Permissions 0644 for '/path/to/key' are too open.
  • It is required that your private key files are NOT accessible by others.
  • This private key will be ignored.

Wird als Block zwischen `@`-Zeilen ausgegeben, gefolgt von „Permissions 0644 for '…' are too open.“ – Modus und Pfad sind die deiner Datei. `ssh-add` gibt denselben Block aus und weigert sich, den Schlüssel hinzuzufügen.

OpenSSH client (ssh, ssh-add, scp, git over SSH) — key file permission check

Was der Fehler bedeutet

OpenSSH weigert sich, eine Datei mit einem privaten Schlüssel zu verwenden, die andere Benutzer auf dem Rechner lesen könnten. Der Schlüssel wird ignoriert („This private key will be ignored.“), deshalb läuft die Verbindung meist weiter und scheitert dann mit „Permission denied (publickey)“. Der oktale Modus in der Meldung zeigt, was die Datei erlaubt; alles über Lesen und Schreiben für den Eigentümer hinaus (`0600` oder `0400`) löst die Meldung aus, und unter Windows nutzt die entsprechende Prüfung die ACL der Datei.

Warum der Fehler auftritt

So behebst du den Fehler

  1. 1.

    Datei auf den Eigentümer beschränken

    `chmod 600` (oder 400) für den Schlüssel und 700 für `~/.ssh`. Setze den Modus in der CI im selben Schritt, der den Schlüssel schreibt.

    bash
    chmod 600 ~/.ssh/id_ed25519          # owner read/write only (400 works too)
    chmod 700 ~/.ssh
    ls -l ~/.ssh/id_ed25519               # -rw------- 1 you you ...
  2. 2.

    ACL unter Windows korrigieren

    Entferne die Vererbung und gewähre nur deinem Konto Lesezugriff.

    text
    REM Windows OpenSSH: remove inherited permissions, grant only your user
    icacls %USERPROFILE%\.ssh\id_ed25519 /inheritance:r
    icacls %USERPROFILE%\.ssh\id_ed25519 /grant:r "%USERNAME%":R
  3. 3.

    Schlüssel mit explizitem Modus einhängen

    Secrets mit `mode: 0400` (oder das Kopieren des Schlüssels in den Container mit anschließendem `chmod`) geben OpenSSH die Berechtigungen, die es verlangt.

    yaml
    # docker compose: mount the key as a secret with explicit mode instead of a bind mount
    services:
      deployer:
        secrets:
          - source: deploy_key
            target: /root/.ssh/id_ed25519
            mode: 0400

Verwandte Fehler

Gesamte Signaturfehler-Datenbank durchsuchen