Configurar chaves SSH
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.
Criar chaves SSH Copiar link
Siga estes passos para criar um par de chaves SSH na sua máquina local.
-
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.
Criar chaves SSH com PuTTY Copiar link
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.pubemykey.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.
Copiar uma chave SSH para o servidor Copiar link
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.
Linux e MacOS Copiar link
ssh-copy-id user@serverExemplo:
ssh-copy-id root@38.62.228.244Windows (PowerShell) Copiar link
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@serverExemplo:
ssh root@38.62.228.244Windows (com PuTTY) Copiar link
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.ppksalva 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 agentDesativar autenticação por senha Copiar link
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
PasswordAuthenticatione altere o valor para:
PasswordAuthentication no-
Salve as alterações e reinicie o serviço SSH:
sudo service ssh restartSolução de problemas Copiar link
Se você não conseguir se conectar usando uma chave SSH, verifique os logs do SSH no servidor:
sudo journalctl -u sshSe os logs contiverem a seguinte entrada:
userauth_pubkey: key type ssh-rsa not in PubkeyAcceptedAlgorithms [preauth]isso indica que o suporte a ssh-rsa (RSA com SHA-1) está desativado no servidor. Nesse caso, você pode resolver o problema utilizando uma das abordagens a seguir.
Opção 1 (Recomendada). Gerar uma nova chave usando um algoritmo mais seguro
Para gerar uma chave RSA mais forte:
ssh-keygen -t rsa -b 4096 -o -a 100Alternativamente, gere uma chave Ed25519:
ssh-keygen -t ed25519Após gerar a chave, envie a nova chave pública para o servidor.
Opção 2. Permitir autenticação usando ssh-rsa atualizando a configuração do SSH
Adicione a seguinte linha ao arquivo /etc/ssh/sshd_config.d/enable_rsa_keys.conf:
HostKeyAlgorithms +ssh-rsa
PubkeyAcceptedKeyTypes +ssh-rsaEm seguida, reinicie o serviço SSH:
sudo systemctl restart sshd