15%

Alexhost concede-lhe desejos

Responder ao inquérito e ganhar prémios

13.12.2024

Chaves SSH para servidores em nuvem

As chaves SSH (Secure Shell) são uma parte essencial do gerenciamento seguro de servidores em nuvem. Elas oferecem um método mais seguro e conveniente para autenticar usuários em comparação com os logins tradicionais baseados em senha. Com o uso de chaves SSH, é possível estabelecer conexões seguras e criptografadas com os servidores em nuvem, garantindo que somente usuários autorizados possam ter acesso. Neste artigo, exploraremos o que são chaves SSH, como elas funcionam e como configurá-las em seu servidor em nuvem.

1. O que são chaves SSH?

As chaves SSH são chaves criptográficas usadas para autenticar clientes em um servidor SSH. Em vez de usar uma combinação de nome de usuário e senha, que pode ser vulnerável a ataques de força bruta, as chaves SSH oferecem uma maneira mais segura e automatizada de fazer login em servidores remotos. Os pares de chaves SSH consistem em duas partes:

  • Chave privada: É mantida em segurança em seu computador local e nunca deve ser compartilhada.
  • Chave pública: É colocada no servidor remoto. O servidor usa a chave pública para autenticar os usuários com base em sua chave privada.

Ao se conectar a um servidor em nuvem, o protocolo SSH verifica se a chave pública no servidor corresponde à chave privada armazenada em seu computador. Se a correspondência for verificada, a conexão será estabelecida sem a necessidade de uma senha.

2. Por que usar chaves SSH para servidores em nuvem?

As chaves SSH oferecem várias vantagens em relação à autenticação tradicional baseada em senha:

  • Segurança aprimorada: As chaves SSH são muito mais difíceis de serem descobertas do que as senhas, pois usam algoritmos criptográficos para autenticação. Além disso, as chaves SSH não são vulneráveis a ataques de força bruta ou de phishing, como as senhas.
  • Conveniência: Depois de configuradas, as chaves SSH permitem a autenticação sem senha, facilitando o login sem a necessidade de inserir credenciais todas as vezes.
  • Automação: Muitos processos e scripts automatizados dependem da autenticação baseada em chaves SSH, o que torna o gerenciamento de servidores e implementações em nuvem mais eficiente.
  • Controle de acesso: As chaves SSH podem ser distribuídas somente para usuários autorizados, permitindo que você controle quem pode acessar seus servidores em nuvem.

3. Como funciona a autenticação de chaves SSH

Esta é uma versão simplificada de como funciona a autenticação de chave SSH:

  1. O cliente (seu computador local) envia uma solicitação para se conectar ao servidor.
  2. O servidor verifica se a chave pública do cliente corresponde a alguma das chaves armazenadas no arquivo ~/.ssh/authorized_keys.
  3. Se for encontrada uma correspondência, o servidor enviará um desafio (geralmente dados criptografados) para o cliente.
  4. O cliente usa sua chave privada para descriptografar o desafio e enviar uma resposta ao servidor.
  5. O servidor verifica a resposta e, se estiver correta, permite o acesso ao cliente sem uma senha.

4. Como gerar chaves SSH

Para usar a autenticação por chave SSH, primeiro você precisa gerar um par de chaves. Veja a seguir como fazer isso:

No Linux ou macOS:

  1. Abra seu terminal.
  2. Execute o seguinte comando para gerar um novo par de chaves SSH:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

Veja a seguir o que cada opção significa:

  • -t rsa: Especifica o algoritmo RSA.
  • -b 4096: Gera uma chave de 4096 bits para aumentar a segurança.
  • -C “your_email@example.com”: Adiciona um comentário para ajudar a identificar a chave.
  1. Você será solicitado a escolher um local para salvar a chave. Por padrão, ela é armazenada no diretório ~/.ssh/. Pressione Enter para aceitar o local padrão.
  2. Você também pode definir uma frase secreta para aumentar a segurança, embora isso seja opcional. Se não quiser usar uma frase secreta, pressione Enter para deixá-la em branco.

No Windows:

Se estiver usando o Windows, você pode usar um cliente SSH como o PuTTYgen ou o recurso OpenSSH integrado no Windows 10 e posterior:

  1. Abra o PowerShell ou o prompt de comando.
  2. Execute o mesmo comando acima para gerar o par de chaves:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

Depois de executar o comando, o processo é o mesmo que no Linux ou no macOS.

5. Como adicionar sua chave SSH ao servidor em nuvem

Depois de gerar o par de chaves SSH, você precisa copiar a chave pública para o servidor de nuvem para ativar a autenticação baseada em chave.

Método 1: usando ssh-copy-id

No Linux ou macOS, você pode usar o comando ssh-copy-id para transferir a chave pública para o seu servidor:

ssh-copy-id user@your-server-ip

Esse comando solicitará que você digite a senha do servidor. Depois que a senha for inserida, ele copiará a chave pública para o arquivo ~/.ssh/authorized_keys no servidor.

Método 2: Método manual

Se você estiver no Windows ou preferir etapas manuais, poderá copiar a chave pública manualmente:

  1. Abra o arquivo de chave pública usando um editor de texto:
cat ~/.ssh/id_rsa.pub
  1. Copie todo o conteúdo do arquivo.
  2. Conecte-se ao seu servidor usando uma sessão SSH baseada em senha:
ssh user@seu-servidor-ip
  1. No servidor, crie o diretório ~/.ssh se ele não existir:
mkdir -p ~/.ssh
  1. Abra o arquivo authorized_keys:
nano ~/.ssh/authorized_keys
  1. Cole a chave pública copiada no arquivo e salve-o.
  2. Defina as permissões corretas:
chmod 600 ~/.ssh/authorized_keys chmod 700 ~/.ssh

Isso garante que somente o usuário tenha acesso de leitura e gravação à chave e ao diretório.

6. Desativar a autenticação por senha (opcional, mas recomendado)

Depois que as chaves SSH estiverem configuradas e funcionando, é altamente recomendável desativar a autenticação por senha no servidor para evitar o acesso não autorizado. Veja como fazer isso:

  1. Abra o arquivo de configuração do SSH em seu servidor de nuvem:
sudo nano /etc/ssh/sshd_config
  1. Localize a seguinte linha e altere-a para no:
PasswordAuthentication no
  1. Salve o arquivo e reinicie o serviço SSH:
sudo systemctl restart sshd

Agora, somente os usuários com uma chave SSH válida poderão fazer login.

7. Gerenciamento de chaves SSH

  • Adição de várias chaves: Se vários usuários precisarem acessar o servidor, você poderá adicionar suas chaves públicas ao arquivo authorized_keys.
  • Remoção de chaves: Se quiser revogar o acesso de um usuário específico, basta remover sua chave pública do arquivo authorized_keys.

8. Conclusão

O uso de chaves SSH para acesso ao servidor em nuvem é uma das melhores maneiras de proteger seu servidor e evitar as vulnerabilidades associadas à autenticação baseada em senha. Seguindo as etapas descritas neste artigo, você pode gerar chaves SSH, adicioná-las ao seu servidor em nuvem e até mesmo desativar os logins com senha para aumentar a segurança.

A configuração de chaves SSH pode exigir um pouco mais de esforço inicialmente, mas a segurança e a conveniência de longo prazo que elas proporcionam fazem com que o esforço valha a pena.

15%

Alexhost concede-lhe desejos

Responder ao inquérito e ganhar prémios