Como fazer upload de uma chave pública SSH para um VPS existente
O uso de chaves SSH pela AlexHost é uma das formas mais seguras e eficientes de lidar com a autenticação. Se você tiver um VPS existente e quiser mudar para o uso de chaves SSH (ou adicionar uma nova chave), esse é um processo simples que aumenta a segurança ao permitir o login sem senha. Neste guia, vamos orientá-lo sobre como carregar uma chave pública SSH em um VPS existente, garantindo que os futuros logins sejam seguros e simples.
Por que usar chaves SSH?
As chaves SSH são amplamente usadas para proteger o acesso a servidores remotos. Elas oferecem várias vantagens em relação às senhas tradicionais:
- Segurança mais forte: As chaves SSH usam autenticação criptográfica, que é significativamente mais difícil de decifrar do que até mesmo senhas fortes.
- Login sem senha: Depois de configuradas, as chaves SSH permitem que você faça login no seu servidor sem digitar uma senha.
- Proteção contra ataques de força bruta: Ao eliminar as senhas, as chaves SSH evitam ataques de força bruta destinados a adivinhar as credenciais de login.
Pré-requisitos
Antes de começar, você precisará de:
- Acesso ao seu VPS existente: isso significa que, no momento, você pode fazer login no VPS usando SSH, provavelmente com uma senha.
- Um par de chaves SSH: Se você não tiver um, veremos como gerá-lo.
- Conhecimento básico dos comandos SSH: É necessário estar familiarizado com a interface de linha de comando (CLI).
Etapa 1: gerar um par de chaves SSH (se você não tiver uma)
Se ainda não tiver um par de chaves SSH em seu computador local, você poderá criar um. Veja como:
Abra um terminal em seu computador local (macOS ou Linux) e execute o seguinte comando:
Esse comando criará um par de chaves de criptografia RSA de 4096 bits. Durante o processo, você será perguntado onde salvar a chave:
- Pressione Enter para salvar a chave no local padrão(~/.ssh/id_rsa).
- Opcionalmente, adicione uma frase secreta para obter uma camada extra de segurança (recomendado) ou pressione Enter para ignorar essa etapa.
Esse processo gera dois arquivos:
- id_rsa: sua chave privada (mantenha-a em segurança e nunca a compartilhe).
- id_rsa.pub: Sua chave pública (é ela que você carregará no servidor).
Em seguida, exiba a chave pública para que você possa copiá-la:
ssh root@seu_vps_ip
Copie a saída (sua chave pública), pois você precisará dela na próxima etapa.
Etapa 2: Faça login no seu VPS
Para adicionar sua nova chave pública SSH à máquina virtual, você precisará fazer login nela usando o método atual (com uma senha ou uma chave existente). Abra seu terminal e execute:
Substitua your_vps_ip pelo endereço IP real do seu VPS. Se estiver fazendo login com uma conta de usuário diferente (não root), substitua root pelo nome de usuário apropriado.
Etapa 3: criar o diretório .ssh (se ele não existir)
Uma vez conectado, verifique se o diretório.ssh existe para a conta de usuário que você está usando. Se ele não existir, crie-o com o seguinte comando:
Esse comando cria o diretório .ssh e define as permissões corretas para que somente o usuário atual possa acessá-lo.
Etapa 4: adicionar a chave pública ao arquivo authorized_keys
Agora que o diretório .ssh está instalado, você precisa carregar sua chave pública SSH no VPS, adicionando-a ao arquivo authorized_keys. Esse arquivo contém as chaves públicas que têm permissão para se autenticar no servidor.
- Abra o arquivo authorized_keys usando um editor de texto, como o nano:
Se o arquivo não existir, esse comando o criará.
- Cole sua chave SSH pública (a que você copiou do id_rsa.pub anteriormente) no arquivo. Clique com o botão direito do mouse ou use a função de colar do terminal para inserir a chave.
- Salve e feche o arquivo pressionando Ctrl X, depois Y e pressione Enter.
- Defina as permissões corretas no arquivo authorized_keys:
Essa etapa garante que o arquivo seja acessível apenas para o usuário atual.
Etapa 5: testar o login da chave SSH
Depois de adicionar sua chave SSH ao VPS, você deve testar a configuração para garantir que possa fazer login sem uma senha.
- Faça logout da sessão SSH atual digitando:
- Agora, tente fazer login novamente no VPS usando sua chave SSH:
Se tudo estiver configurado corretamente
- você será conectado ao VPS sem que seja solicitada uma senha.
Etapa 6 (opcional): Desativar a autenticação por senha
Para aumentar a segurança, você pode desativar a autenticação baseada em senha, permitindo que somente os usuários com uma chave SSH acessem o VPS. Essa etapa é opcional, mas recomendada para ambientes em que a segurança é uma prioridade.
Para desativar a autenticação por senha:
- Abra o arquivo de configuração SSH em seu VPS:
- Localize as seguintes linhas no arquivo de configuração e certifique-se de que estejam definidas da seguinte forma:
- Salve e feche o arquivo pressionando Ctrl X , depois Y e pressione Enter.
- Reinicie o serviço SSH para aplicar as alterações:
Agora, somente os usuários com uma chave SSH válida poderão fazer login no VPS.
Etapa 7: Gerenciamento de várias chaves SSH
Se você gerencia vários VPS ou servidores remotos, talvez queira organizar suas chaves SSH e configurar o arquivo ~/.ssh/config para sua conveniência. Aqui está um exemplo de configuração que permite especificar diferentes chaves SSH para diferentes servidores:
Depois de adicionar isso ao seu arquivo de configuração SSH(~/.ssh/config), você pode simplesmente fazer login com:
Conclusão
Adicionar uma chave pública SSH a um VPS existente aumenta significativamente a segurança do seu servidor remoto e simplifica o processo de login. Seguindo este guia, você pode carregar facilmente sua chave pública SSH e configurar seu VPS para login sem senha. Para aumentar a segurança, considere desativar totalmente a autenticação por senha, garantindo que somente as chaves SSH autorizadas possam acessar seu VPS. Essa configuração não apenas protege seu servidor contra acesso não autorizado, mas também simplifica seu fluxo de trabalho, eliminando a necessidade de inserir senhas sempre que fizer login.