Chaves SSH para servidores em nuvem ⋆ ALexHost SRL

Test your skills on our all Hosting services and get 15% off!

Use code at checkout:

Skills
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.

Test your skills on our all Hosting services and get 15% off!

Use code at checkout:

Skills