Neste artigo, vamos mostrar como criar chaves SSH em dispositivos com diferentes sistemas operacionais e como copiá-las para um servidor para conexões SSH.
Siga estes passos para criar um par de chaves SSH na sua máquina local.
Este guia funciona para Linux, MacOS e versões mais novas do Windows 10 a partir da 1809, que já têm um cliente SSH integrado. Se você tiver uma versão mais antiga do Windows, precisará usar um cliente SSH, como o PuTTY.
Abra um terminal ou o PowerShell do Windows no seu computador e execute o comando:
ssh-keygen
Você verá uma mensagem parecida com esta:
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa):
Pressione Enter para salvar a chave no diretório padrão.
Defina uma senha (passphrase) ou pressione Enter para deixar em branco. Usar uma senha aumenta a segurança, mas você terá que digitá-la toda vez que fizer login no servidor.
Pronto! As chaves foram criadas. A chave privada ficará armazenada na sua máquina, enquanto a chave pública deve ser copiada para o servidor. Isso pode ser feito manualmente, como descrito abaixo, ou de forma mais prática pelo painel de controle Hostman.
Versões antigas do Windows não têm OpenSSH, então você precisará do programa PuTTYgen. Você pode baixar o puttygen.exe no site oficial do PuTTY.
Abra o programa.
Selecione RSA em Type of key to generate e clique em Generate.
Mova o mouse aleatoriamente na área abaixo da barra de carregamento para gerar valores aleatórios.
Depois que a chave for criada, você pode definir a Key passphrase. Isso é opcional; você pode deixar em branco. Se definir uma senha, será necessário digitá-la cada vez que fizer login usando a chave.
Salve as chaves criadas clicando em Save public key e Save private key, por exemplo, como id_rsa.pub e mykey.ppk.
Copie e salve também o conteúdo do campo Public key for pasting... em um arquivo de texto, pois você precisará dele ao copiar a chave SSH para o servidor ou para o painel Hostman.
Também é possível transferir a chave pública SSH para o servidor via painel Hostman.
Execute o seguinte comando no terminal da sua máquina local. Substitua user pelo nome de usuário criado no servidor e server pelo IP do servidor.
ssh-copy-id user@server
Exemplo:
ssh-copy-id root@38.62.228.244
type $env:USERPROFILE\.ssh\id_rsa.pub | ssh user@server "cat >> .ssh/authorized_keys"
Exemplo:
type $env:USERPROFILE\.ssh\id_rsa.pub | ssh root@38.62.228.244 "cat >> .ssh/authorized_keys"
O conteúdo do arquivo id_rsa.pub será copiado para ~/.ssh/authorized_keys no servidor, e a partir de então você poderá se conectar usando:
ssh user@server
Exemplo:
ssh root@38.62.228.244
Em versões antigas do Windows, você precisará do utilitário pageant para copiar a chave SSH para o servidor. Baixe o pageant.exe no site oficial do PuTTY.
Conecte-se ao servidor via SSH pelo PuTTY e execute os comandos para criar os arquivos que armazenarão as chaves:
chmod 0700 ~/.ssh
touch ~/.ssh/authorized_keys
chmod 0644 ~/.ssh/authorized_keys
Abra o arquivo:
nano ~/.ssh/authorized_keys
Cole a chave pública copiada do PuTTYgen e salve o arquivo.
Abra o Pageant. O ícone aparecerá na bandeja. Clique com o botão direito e selecione Add Key.
Informe o caminho da chave privada mykey.ppk salva anteriormente e clique em Open. Se você tiver definido uma senha, o Pageant solicitará nesse momento.
Para verificar se a autorização da chave funciona, abra o PuTTY, conecte-se ao servidor e faça login. Se tudo estiver correto, verá algo assim no console:
Authenticating with public key "rsa-key-20151220" from agent
Você pode desativar a autenticação por senha no servidor para que o acesso seja permitido apenas via chave SSH. Para isso, edite o arquivo /etc/ssh/sshd_config no servidor.
Conecte-se ao servidor via SSH e abra o arquivo:
sudo nano /etc/ssh/sshd_config
Encontre a linha PasswordAuthentication e altere o valor para:
PasswordAuthentication no
Salve as alterações e reinicie o serviço SSH:
sudo service ssh restart