Pular para o conteúdo
ecdsa.com
OpenSSH client (ssh, ssh-add, scp, git over SSH)SSH

Mensagem de erro

WARNING: UNPROTECTED PRIVATE KEY FILE!

Também aparece como

  • 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.

O aviso aparece como um bloco entre linhas de `@`, seguido de “Permissions 0644 for '…' are too open.” — o modo e o caminho são os do seu arquivo. O `ssh-add` imprime o mesmo bloco e se recusa a adicionar a chave.

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

O que significa

O OpenSSH se recusa a usar um arquivo de chave privada que outros usuários da máquina poderiam ler. A chave é ignorada (“This private key will be ignored.”), então a conexão normalmente continua e depois falha com “Permission denied (publickey)”. O modo octal na mensagem mostra o que o arquivo permite; qualquer coisa além de leitura/escrita pelo dono (`0600` ou `0400`) dispara o erro, e no Windows a verificação equivalente usa a ACL do arquivo.

Por que acontece

Como corrigir

  1. 1.

    Restringir o arquivo ao dono

    `chmod 600` (ou 400) na chave e 700 em `~/.ssh`. No CI, defina o modo na mesma etapa que grava a chave.

    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.

    Corrigir a ACL no Windows

    Desabilite a herança e conceda acesso de leitura apenas à sua conta.

    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.

    Montar as chaves com um modo explícito

    Segredos com `mode: 0400` (ou copiar a chave para o contêiner e aplicar `chmod` nela) dão ao OpenSSH as permissões que ele exige.

    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

Erros relacionados

Ver toda a base de erros de assinatura