Geral

Guia Completo: Como Gerar uma Chave SSH, Para Que Serve e Quais os Riscos

Guia Completo: Como Gerar uma Chave SSH, Para Que Serve e Quais os Riscos

Se você trabalha com desenvolvimento de software, administração de sistemas ou simplesmente precisa acessar servidores remotos com segurança, você inevitavelmente encontrará o termo Chave SSH. Muitas vezes, iniciantes se sentem intimidados pela terminologia técnica, mas entender o funcionamento das chaves SSH é um divisor de águas para a segurança da sua infraestrutura digital.

Neste guia completo, vamos explorar detalhadamente o que é uma chave SSH, por que ela é preferível a senhas tradicionais, quais são os riscos envolvidos e, claro, um passo a passo detalhado para você gerar a sua própria chave agora mesmo.

O que é uma Chave SSH e para que ela serve?

SSH (Secure Shell) é um protocolo de comunicação que permite o acesso remoto a computadores e servidores de forma criptografada. Quando falamos em “Chaves SSH”, estamos nos referindo a um método de autenticação baseado em criptografia de chave pública.

O Conceito de Criptografia Assimétrica

Para entender a chave SSH, você precisa entender a criptografia assimétrica. Imagine que existem duas chaves relacionadas, mas que funcionam de formas diferentes:

  1. Chave Pública: É como o cadeado de uma porta. Você pode distribuí-la livremente para qualquer pessoa ou servidor. Ela serve para “trancar” a comunicação.
  2. Chave Privada: É a chave física que abre o cadeado. Esta chave deve permanecer apenas com você. Ela é usada para “destrancar” a comunicação.

Quando você se conecta a um servidor via SSH, o servidor apresenta um desafio criptográfico que só pode ser resolvido por quem possui a chave privada correspondente à chave pública que já está instalada nele.

Principais utilidades das chaves SSH:

  • Autenticação de Servidores (Remote Login): Acessar servidores Linux via terminal sem precisar digitar uma senha a cada conexão.
  • Acesso a Repositórios de Código: Plataformas como GitHub, GitLab e Bitbucket utilizam chaves SSH para autenticar desenvolvedores, permitindo clonar e enviar código de forma segura.
  • Automação de Scripts: Facilitar a execução de tarefas em múltiplos servidores simultaneamente através de ferramentas como Ansible ou scripts em Bash.
  • Transferência de Arquivos Segura: Utilizar protocolos como SFTP ou SCP para mover dados entre máquinas com criptografia de ponta a ponta.

Quais são os riscos de usar Chaves SSH?

Embora as chaves SSH sejam muito mais seguras que as senhas tradicionais, elas não são infalíveis. O risco principal reside no manejo da chave privada.

1. Exposição da Chave Privada

Se um atacante conseguir acesso ao arquivo da sua chave privada (geralmente localizado na pasta ~/.ssh/), ele terá acesso total a todos os sistemas onde sua chave pública estiver cadastrada. Isso é equivalente a entregar a chave da sua casa para um estranho.

2. Falta de Passphrase (Frase de Senha)

Muitos usuários geram chaves SSH sem definir uma passphrase. Isso significa que qualquer pessoa ou malware que invadir sua máquina local poderá usar sua chave instantaneamente. O uso de uma passphrase adiciona uma camada de proteção, exigindo que você digite uma senha antes que a chave privada seja liberada para uso.

3. Chaves Perdidas ou Roubadas

Se você perder o acesso ao seu computador onde a chave privada está armazenada e não tiver um backup seguro (ou uma chave de backup), você pode perder o acesso aos seus servidores. Por outro lado, se o dispositivo for roubado, o acesso está comprometido.

4. Uso de Algoritmos Obsoletos

Utilizar algoritmos antigos e fracos (como RSA com bits insuficientes) pode tornar a chave vulnerável a ataques de força bruta por parte de computadores potentes.

Pré-requisitos antes de começar

Para gerar sua chave SSH, você precisará de:

  • Um terminal aberto (PowerShell ou CMD no Windows, Terminal no macOS ou Linux).
  • O cliente OpenSSH instalado (já vem por padrão na maioria das distribuições Linux, macOS e versões recentes do Windows 10/11).
  • Conhecimento básico de como navegar em pastas pelo terminal.

Passo a Passo: Como Gerar uma Chave SSH

Abaixo, apresento o método padrão utilizando o comando ssh-keygen, que é a ferramenta universal para essa tarefa.

Passo 1: Verificar se o SSH está instalado

No seu terminal, digite:

ssh -V

Se aparecer uma versão do OpenSSH, você está pronto para continuar.

Passo 2: Gerar o par de chaves

Recomendamos o uso do algoritmo Ed25519, pois ele é mais seguro e rápido que o RSA tradicional.

Digite o seguinte comando no terminal:

ssh-keygen -t ed25519 -C "[email protected]" 

Nota: O parâmetro -C é apenas um comentário para identificar a chave, geralmente usamos o e-mail.

Se o seu sistema não suportar Ed25519, utilize o RSA de 4096 bits:

ssh-keygen -t rsa -b 4096 -C "[email protected]" 

Passo 3: Definir o local da chave

O terminal perguntará onde você deseja salvar a chave:
Enter file in which to save the key (/home/usuario/.ssh/id_ed25519):

Para a maioria dos usuários, basta apertar ENTER para aceitar o local padrão.

Passo 4: Definir a Passphrase (Opcional, mas recomendado)

O sistema pedirá para você inserir uma frase de senha:
Enter passphrase (empty for no passphrase):

Digite uma senha forte e pressione ENTER. Você terá que digitá-la novamente para confirmar. Se deixar em branco, a chave será usada sem nenhuma proteção adicional além do arquivo físico.

Passo 5: Localizar as chaves geradas

Após o processo, o comando criará dois arquivos na pasta .ssh:

  • id_ed25519 (Sua Chave Privada – NUNCA compartilhe este arquivo).
  • id_ed25519.pub (Sua Chave Pública – Esta é a que você enviará para o servidor ou GitHub).

Para visualizar sua chave pública e copiá-la, use o comando:

cat ~/.ssh/id_ed25519.pub 

(No Windows, o caminho pode ser C:\Users\SeuUsuario\.ssh\id_ed25519.pub)

Como adicionar a chave ao seu servidor ou GitHub

Agora que você tem a chave pública, você precisa “instalar” o cadeado no destino.

Adicionando ao GitHub/GitLab:

  1. Copie o conteúdo do arquivo .pub gerado no passo anterior.
  2. Vá em Settings -> SSH and GPG keys.
  3. Clique em New SSH Key.
  4. Cole a chave e dê um nome para ela.

Adicionando a um Servidor Linux:

A forma mais simples é usar o comando ssh-copy-id:

ssh-copy-id usuario@ip_do_servidor

Se o comando não estiver disponível, você deve copiar o conteúdo da chave pública e colá-lo dentro do arquivo ~/.ssh/authorized_keys no servidor remoto.

Dicas de Especialista para Segurança e Performance

Para garantir que sua experiência com chaves SSH seja profissional e segura, siga estas recomendações:

  • Use um SSH Agent: Para não ter que digitar a passphrase toda vez que usar a chave, utilize o agente de autenticação do sistema. No Linux/macOS, use ssh-add ~/.ssh/id_ed25519.
  • Permissões de Arquivo: Certifique-se de que as permissões da sua pasta .ssh e do arquivo de chave privada estejam corretas. No Linux, a chave privada deve ter permissão 600:
  chmod 600 ~/.ssh/id_ed25519
  
  • Rotação de Chaves: Não use a mesma chave para tudo por anos. É uma boa prática gerar novas chaves periodicamente e remover as antigas dos servidores.
  • Use Chaves Diferentes: Considere ter uma chave específica para o GitHub e outra para seus servidores de produção. Isso limita o impacto caso uma delas seja comprometida.

FAQ – Perguntas Frequentes

1. Qual a diferença entre RSA e Ed25519?

O RSA é o padrão mais antigo e amplamente compatível. O Ed25519 é um algoritmo mais moderno, baseado em curvas elípticas. Ele oferece maior segurança com chaves menores e é mais rápido para processar. Atualmente, Ed25519 é a recomendação padrão para novos sistemas.

2. É seguro deixar a passphrase em branco?

Depende do ambiente. Em um computador pessoal altamente seguro, pode ser aceitável para conveniência. Em ambientes corporativos ou servidores críticos, deixar a passphrase em branco é um risco de segurança grave, pois qualquer pessoa com acesso físico ou remoto ao seu computador poderá usar suas chaves.

3. O que acontece se eu perder minha chave privada?

Se você perder a chave privada e não tiver uma chave de backup cadastrada no servidor, você perderá o acesso ao servidor via SSH. Você precisará de acesso via console físico (ou painel de controle da VPS) para adicionar uma nova chave pública.

4. Como eu sei se minha chave pública está sendo usada?

Você pode verificar as chaves públicas autorizadas em qualquer servidor acessando o arquivo ~/.ssh/authorized_keys. Se a sua chave estiver listada lá, o servidor a reconhecerá para autenticação.

Conclusão

Gerar e utilizar chaves SSH é um dos passos mais fundamentais para qualquer pessoa que deseja adotar boas práticas de segurança na internet. Ao substituir senhas por criptografia assimétrica, você elimina riscos de ataques de dicionário e força bruta, além de agilizar drasticamente o fluxo de trabalho em ambientes de desenvolvimento.

Lembre-se da regra de ouro: Sua chave privada é sua identidade digital. Trate-a com o mesmo cuidado que você trata sua senha principal. Nunca a envie por e-mail, nunca a suba para repositórios públicos e, sempre que possível, utilize uma passphrase para garantir que apenas você tenha o poder de “abrir a porta”.

Com este guia, você já possui o conhecimento técnico e o passo a passo necessário para configurar seu ambiente de forma profissional e segura. Comece gerando sua primeira chave hoje mesmo!


Fontes consultadas:

  • OpenSSH Manual Pages (man ssh-keygen)
  • GitHub Documentation on SSH Keys
  • NIST Special Publication 800-53 (Security and Privacy Controls)
Compartilhar: X f in wa