Gerenciando chaves SSH no Linux
Criando e Gerenciando Chaves SSH (PEM e PPK)
Este tutorial abrangente guiará você através da criação, gerenciamento e conversão de chaves SSH nos formatos PEM (padrão OpenSSH) e PPK (usado pelo PuTTY), focando no ambiente Ubuntu 24.04.
Entendendo os Formatos de Chave:
PEM (Privacy-Enhanced Mail): É o formato padrão de chave privada usado pelo OpenSSH e pela maioria dos sistemas Linux e macOS. Geralmente, os arquivos de chave privada PEM não possuem extensão ou têm a extensão .pem ou id_rsa (para chaves RSA) / id_ed25519 (para chaves EdDSA).
PPK (PuTTY Private Key): É um formato de chave privada específico usado pelo cliente SSH PuTTY, comum em sistemas Windows.
Cenários Comuns:
Você está em um sistema Linux (Ubuntu 24.04) e precisa gerar um par de chaves para autenticação SSH.
Você recebeu uma chave privada no formato PPK e precisa usá-la com o cliente SSH padrão do Linux (que espera o formato PEM).
Você gerou uma chave no Linux (formato PEM) e precisa usá-la com o PuTTY em um sistema Windows.
Parte 1: Criando um Par de Chaves SSH (Formato PEM)
O Ubuntu 24.04 já vem com o OpenSSH instalado. Use o comando ssh-keygen para gerar um novo par de chaves PEM.
Abra seu terminal no Ubuntu 24.04.
Execute o comando ssh-keygen:
ssh-keygen -t rsa -b 4096
-t rsa: Especifica o tipo de chave a ser gerada (RSA é um algoritmo comum e seguro). Você também pode usar -t ed25519 para um algoritmo mais moderno e geralmente recomendado.
-b 4096: Define o número de bits para a chave RSA. 4096 é um tamanho seguro. Para EdDSA, o tamanho é fixo.
Siga as instruções:
Enter file in which to save the key (/home/seu_usuario/.ssh/id_rsa): Pressione Enter para aceitar o local padrão (~/.ssh/id_rsa) ou digite um novo caminho e nome de arquivo. É uma boa prática manter as chaves dentro do diretório .ssh.
Enter passphrase (empty for no passphrase): É altamente recomendável proteger sua chave privada com uma passphrase. Isso adiciona uma camada extra de segurança. Você precisará digitar a passphrase sempre que usar a chave. Se preferir não usar passphrase (menos seguro), apenas pressione Enter.
Enter same passphrase again: Se você digitou uma passphrase, confirme-a aqui.
Após a conclusão, dois arquivos serão criados (se você usou o nome padrão):
~/.ssh/id_rsa: Sua chave privada. Mantenha este arquivo seguro e nunca o compartilhe.
~/.ssh/id_rsa.pub: Sua chave pública. Este arquivo pode ser compartilhado com os servidores aos quais você deseja acessar.
Parte 2: Convertendo uma Chave PPK para PEM
Se você possui uma chave privada no formato PPK e precisa usá-la no Ubuntu 24.04 com o cliente SSH padrão, você precisará convertê-la para o formato PEM. Para isso, você precisará da ferramenta puttygen, que pode ser instalada no Ubuntu.
Instale o puttygen:
sudo apt update
sudo apt install putty-tools
Converta a chave PPK para PEM:
puttygen sua_chave.ppk -O private-openssh -o sua_chave.pem
sua_chave.ppk: Substitua pelo nome do seu arquivo de chave privada PPK.
-O private-openssh: Especifica o formato de saída como chave privada OpenSSH (PEM).
-o sua_chave.pem: Especifica o nome do arquivo de saída para a chave PEM. Escolha um nome apropriado e lembre-se de sua localização.
Proteja a chave PEM convertida:
Após a conversão, é crucial restringir as permissões do arquivo PEM para que apenas o seu usuário tenha acesso de leitura e escrita.
chmod 600 sua_chave.pem
Parte 3: Convertendo uma Chave PEM para PPK
Se você gerou uma chave no formato PEM no Ubuntu 24.04 e precisa usá-la com o PuTTY em um sistema Windows, você pode convertê-la para o formato PPK usando o puttygen no Ubuntu.
Instale o puttygen (se ainda não estiver instalado):
sudo apt update
sudo apt install putty-tools
Converta a chave PEM para PPK:
puttygen sua_chave.pem -o sua_chave.ppk
sua_chave.pem: Substitua pelo nome do seu arquivo de chave privada PEM.
-o sua_chave.ppk: Especifica o nome do arquivo de saída para a chave PPK.
Se a sua chave PEM estiver protegida por uma passphrase, o puttygen solicitará que você a digite para convertê-la. Você também terá a opção de adicionar uma passphrase à chave PPK durante o processo de conversão.
Parte 4: Gerenciando suas Chaves SSH
Localização Padrão: As chaves SSH geradas pelo ssh-keygen são geralmente armazenadas no diretório ~/.ssh/.
Arquivo authorized_keys: Para permitir o login SSH sem senha em um servidor, o conteúdo da sua chave pública (.pub file) deve ser adicionado ao arquivo ~/.ssh/authorized_keys no servidor. Cada chave pública deve estar em uma linha separada neste arquivo.
Permissões: É fundamental definir as permissões corretas para o diretório .ssh e seus arquivos no seu sistema local e nos servidores:
~/.ssh: chmod 700 ~/.ssh (apenas o proprietário tem permissão de leitura, escrita e execução).
~/.ssh/id_rsa (chave privada PEM): chmod 600 ~/.ssh/id_rsa (apenas o proprietário tem permissão de leitura e escrita).
~/.ssh/id_rsa.pub (chave pública PEM): chmod 644 ~/.ssh/id_rsa.pub (o proprietário tem leitura e escrita, outros têm apenas leitura).
~/.ssh/authorized_keys (no servidor): chmod 600 ~/.ssh/authorized_keys (apenas o proprietário tem permissão de leitura e escrita).
Múltiplas Chaves: Você pode ter várias chaves SSH para diferentes propósitos ou servidores. Ao se conectar, você pode especificar qual chave privada usar com a opção -i do comando ssh:
ssh -i ~/.ssh/minha_chave_especifica usuario@servidor
Agente SSH (ssh-agent): Para evitar digitar a passphrase da sua chave privada repetidamente, você pode usar o ssh-agent. Ele é um programa que mantém suas chaves privadas desbloqueadas na memória.
Inicie o ssh-agent:
eval "$(ssh-agent -s)"
Adicione sua chave ao agente:
ssh-add ~/.ssh/id_rsa
Se sua chave tiver uma passphrase, você será solicitado a digitá-la.
Para adicionar uma chave com um nome diferente:
ssh-add ~/.ssh/sua_chave.pem
Agora, para as conexões subsequentes na mesma sessão de terminal, você não precisará digitar a passphrase da chave adicionada.
Em Resumo:
Use ssh-keygen no Ubuntu para criar chaves no formato PEM.
Use putty-tools (especificamente puttygen) para converter entre os formatos PPK e PEM.
Mantenha suas chaves privadas seguras e defina as permissões corretas.
Adicione suas chaves públicas ao arquivo authorized_keys nos servidores para autenticação sem senha.
Considere usar o ssh-agent para gerenciar suas chaves privadas e evitar digitar a passphrase repetidamente.
Este tutorial fornece as informações essenciais para criar e gerenciar chaves SSH nos formatos PEM e PPK no Ubuntu 24.04. Lembre-se sempre da importância da segurança ao lidar com chaves privadas.