1001Ferramentas
🔑 Geradores

Builder de arquivo .netrc

Monta um arquivo ~/.netrc (curl, ftp, git credential) com múltiplas entradas 'machine HOST', login, password e account opcional, mais entrada 'default' única. Avisa sobre passwords com '#' ou espaço (que quebram o parser) e relembra chmod 600.

Adicione entradas (uma por linha) no formato host login password [account] ou default login password.

Sobre o ~/.netrc

O arquivo ~/.netrc é lido por curl, ftp e o git via credential helper para autenticação automática. O parser do curl não suporta espaços nem # dentro dos tokens (esta ferramenta recusa esses caracteres). Após gerar o arquivo, faça chmod 600 ~/.netrc ou as ferramentas se recusam a usá-lo.

O que é o arquivo .netrc

O arquivo .netrc é uma convenção dos anos 1970 para guardar credenciais de login, permitindo que ferramentas de linha de comando autentiquem sem interação. Mora em ~/.netrc (ou %USERPROFILE%\_netrc no Windows), precisa ser legível apenas pelo dono (chmod 600) e é lido por curl (--netrc, --netrc-file), wget, o cliente ftp legado, git (via credential helpers), urllib do Python e URLConnection do Java. É texto puro — isso é a vantagem e o risco de segurança ao mesmo tempo.

Formato do arquivo

Entradas são separadas por linha em branco. Cada uma tem uma linha machine (ou o fallback especial default), um login, uma password e opcionalmente um account. Tokens não podem conter espaço nem #:

machine ftp.exemplo.com
  login alice
  password s3cret
  account financeiro

machine github.com
  login alice
  password ghp_xxxxxxxxxxxxxxxxxxxx

default
  login anonymous
  password [email protected]

A entrada default é o fallback para qualquer host não listado explicitamente. A diretiva macdef definia macros de FTP e está obsoleta — evite.

Trade-offs de segurança e alternativas modernas

O arquivo é texto puro. Quem o lê, lê suas senhas — backup mal configurado, repositório de dotfiles compartilhado, notebook roubado. Alternativas mais fortes são keystores do SO: macOS Keychain, GNOME Keyring / KWallet no Linux, Windows Credential Manager. O CLI gh usa keyring no lugar do .netrc. Para uso em time e servidor, HashiCorp Vault, AWS Secrets Manager, Doppler e 1Password CLI são o caminho moderno. Em CI, GitHub Actions e GitLab CI injetam segredos como variáveis de ambiente — Docker tem mount dedicado de secrets. Use .netrc para tokens pessoais e de curta duração; rotacione com frequência.

Boas práticas

  • chmod 600 ~/.netrc logo após criar — caso contrário curl se recusa a ler.
  • Nunca commite o arquivo no git ou em repositório de dotfiles.
  • Use personal access tokens curtos, não senhas de longa duração.
  • Rotacione tokens periodicamente — trimestral para baixo risco, mensal para produção.
  • Criptografe o volume da home (FileVault, LUKS) para que disco roubado não revele o arquivo.
  • Use --netrc-file /caminho/custom.netrc separado por projeto quando contextos divergirem.

Perguntas frequentes

Devo versionar .netrc no git? Não. Nunca. Adicione .netrc ao .gitignore global (git config --global core.excludesfile ~/.gitignore_global) para não vazar por engano.

.netrc ainda é usado em 2026? Sim, em fluxos legados de curl, wget e FTP, e como atalho para scriptar APIs privadas no shell. Softwares novos preferem keychains do SO e tokens OIDC.

Por que precisa do chmod 600? curl, ftp e a maioria das libs recusa ler um arquivo com permissão de grupo ou outros, justamente para não vazar credencial por acidente.

Algum dado é enviado a um servidor? Não. O arquivo é montado no seu navegador e escrito no bloco de saída — nada é enviado.

Ferramentas Relacionadas