A mensagem diz que a chave privada tem o comprimento errado, e essa formulação aponta primeiro para a codificação e só depois para a criptografia. As chaves do WireGuard codificam 32 bytes em base64, o que dá 44 caracteres incluindo um preenchimento final, por isso um valor de outro tamanho não é uma chave por muito aleatório que pareça. Preencher a cadeia até o analisador a aceitar produz um valor bem formado que nenhum par reconhecerá jamais.

Por trás deste erro escondem-se duas tarefas diferentes: reparar o texto de uma chave válida e substituir uma identidade que já não possui. Têm consequências diferentes, e uma delas invalida o outro extremo.

O que o analisador espera

Uma chave do WireGuard são 32 bytes de material de chave em base64 com preenchimento padrão, o que dá uma cadeia fixa de 44 caracteres. As ferramentas rejeitam tudo o que não descodifique exatamente para 32 bytes, porque a curva subjacente recebe um escalar de 32 bytes e nada mais. Os valores públicos e privados usam a mesma codificação, por isso o analisador não consegue saber apenas pelo formato qual dos dois colou. É essa ambiguidade que causa metade da confusão em torno deste erro.

wg genkey | tee private.key | wg pubkey > public.key
base64 -d private.key | wc -c
wc -c private.key
wg show wg0 public-key

Se o seu valor descodifica para 32 bytes, o comprimento está certo e a queixa vem de outro sítio do ficheiro. Se descodifica para algo mais curto, tem material truncado e não um problema de formatação.

Dano de formatação ou material errado?

O dano de formatação concentra-se nas extremidades: aspas acrescentadas por uma shell, uma etiqueta como private_key copiada junto com o valor, uma quebra de linha inserida por um cliente de chat ou um espaço final que sobreviveu à colagem. Cada uma dessas alterações muda a cadeia sem mudar os bytes, por isso removê-la restaura a identidade original. Compare o ficheiro com o registo de aprovisionamento caráter a caráter em vez de retirar pontuação até o analisador se calar.

O material errado é outra situação. Uma palavra-passe, uma chave de certificado ou um valor público podem todos parecer plausíveis e descodificar para o tamanho errado. Nenhuma limpeza transforma qualquer deles no escalar que o par espera. Esse caso exige uma identidade nova, não uma edição.

Uma chave pública no campo privado

A confusão mais comum é um valor público colado no campo privado, ou o contrário. Ambos são base64 válidos de 32 bytes, por isso a verificação de comprimento passa e o handshake falha mais tarde sem uma mensagem útil. Uma chave privada é o escalar que produz a pública, por isso pode resolver a questão derivando o valor público e comparando-o com o que o par autoriza. Quando o valor derivado não corresponde ao registo, tem a identidade errada e não um erro de escrita.

Substituir a chave privada do cliente sem atualizar a chave pública autorizada no outro extremo recria o mesmo desalinhamento, com a confusão adicional de que o ficheiro do próprio cliente agora parece coerente. Altere ambos os extremos numa só operação, ou a pessoa seguinte vai depurar a metade errada.

Repare o perfil e depois prove o handshake

Depois de a chave descodificar para o tamanho certo e corresponder ao par autorizado, o trabalho restante é o perfil e a rota. Os comandos abaixo geram um par novo quando é necessário, verificam o tamanho descodificado de uma chave existente e leem o valor público que a interface usa realmente. Nunca cole um valor privado num ticket ou num site de descodificação.

wg genkey | tee new.key | wg pubkey > new.pub
base64 -d private.key | wc -c
ip route get 10.60.9.5
wg show wg0 latest-handshakes

A verificação de tamanho responde se o material tem forma de chave, e a consulta de rota responde se um pacote chegaria alguma vez à interface. Uma linha de handshake que fica vazia depois de ambas as verificações passarem desloca o diagnóstico para o extremo do par e para os endereços permitidos. Leia a chave pública da interface contra o registo de aprovisionamento uma última vez, porque um perfil guardado obsoleto pode parecer correto enquanto o ativo difere].

Registe qual valor substituiu e onde vive a cópia autorizada. Quem tocar neste par a seguir precisa de saber qual extremo mudou.

Artigos relacionados