Como adicionar chaves SSH no Ubuntu 20.04

Como adicionar chaves SSH no Ubuntu 20.04

Configure um login seguro sem senha para o seu servidor Ubuntu remoto usando chaves SSH

SSH é um protocolo de rede cliente-servidor seguro que ajuda um computador cliente a se conectar e se comunicar com um servidor remoto. A conexão SSH garante que os comandos digitados no terminal sejam enviados ao servidor remoto por meio de um canal criptografado.

Existem dois tipos de mecanismos de autenticação usados ​​para se conectar ao servidor remoto, autenticação baseada em senha (sujeita a ataques de força bruta) e autenticação baseada em Chaves SSH (que é muito segura).

Na autenticação baseada em chave SSH, um par de chaves é gerado no computador cliente, chamado de chave pública e chave privada. Uma cópia dessa chave pública é disponibilizada no servidor remoto. Quando um cliente envia uma solicitação de conexão ao servidor, o servidor gera uma string aleatória e a criptografa usando a chave pública. Esta string só pode ser descriptografada usando a chave privada disponível no computador cliente. Este método garante que o servidor só possa ser acessado por clientes que contêm a chave privada.

Neste guia, veremos como configurar chaves SSH no servidor Ubuntu 20.04 LTS.

Veja se você tem alguma chave SSH existente no seu computador

Para verificar se já existe um par de chaves SSH em seu computador, digite este comando em seu terminal.

ls -l ~/.ssh/id_*.pub

Se o comando acima retornar no such file or directoryou no matches found, isso significa que o par de chaves SSH não existe.

Se você tiver um par de chaves SSH existente, poderá usar o mesmo par de chaves para acessar dois servidores remotos ou também criar um par de chaves diferente com um nome diferente. Vamos passar para a próxima etapa e ver como gerar chaves SSH para ambos os casos.

Criação de chaves SSH em um computador cliente

Para gerar um novo par de chaves SSH em seu computador, digite o comando conforme mostrado abaixo.

ssh-keygen

Por padrão, as chaves SSH são de 2048 bits. Para melhor segurança, se você deseja gerar chaves SSH com bits mais altos, use o seguinte comando.

ssh-keygen -b 4096

Se o comando for executado com êxito, a seguinte mensagem aparecerá na tela.

gerando par de chaves rsa pública / privada.
Digite o arquivo no qual deseja salvar a chave (/home/harshit/.ssh/id_rsa):

Agora, se você não tiver nenhum par de chaves SSH existente em seu computador, simplesmente pressione Enter, mas se você tiver uma chave SSH existente, salve a chave com um nome de arquivo diferente, conforme mostrado abaixo.

Insira o arquivo no qual deseja salvar a chave (/home/your_name/.ssh/id_rsa): /home/your_name/.ssh/id_rsa_xxx

Substitua o xxxno final do nome do arquivo por um nome apropriado, conforme mostrado abaixo e pressione Enter.

Digite o arquivo no qual deseja salvar a chave (/home/your_name/.ssh/id_rsa): /home/your_name/.ssh/id_rsa_client_1

O próximo prompt solicitará que você insira uma frase secreta de comprimento arbitrário, que irá garantir a segurança de dois níveis em seu dispositivo. 

Enter passphrase (empty for no passphrase):
Enter same passphrase again:

A inserção desta senha irá garantir que mesmo se uma pessoa obtiver acesso à sua chave privada, ela não será capaz de acessar o seu servidor remoto sem esta senha.

Assim que todo o processo for concluído, a seguinte mensagem aparecerá em sua tela.

Como adicionar chaves SSH no Ubuntu 20.04

As chaves SSH foram geradas em seu sistema. Agora é hora de copiar a chave pública no servidor remoto.

Copiando a chave pública para o servidor Ubuntu remoto

O método mais fácil e rápido de copiar a chave pública para o servidor remoto é usar o ssh-copy-idutilitário. Mas se este utilitário não estiver disponível em sua máquina por algum motivo, você também pode usar outros métodos fornecidos nesta seção.

Usando o utilitário ssh-copy-id

O ssh-copy-idutilitário está disponível por padrão em sua máquina Ubuntu, que copia a chave pública de seu dispositivo para o diretório apropriado de sua máquina Ubuntu remota.

Para copiar a chave ssh pública, basta digitar o comando em seu terminal, conforme mostrado abaixo.

ssh-copy-id [email protected]

Substitua o usernamee hostnameno comando acima pelo nome de usuário e nome do host do seu servidor.

A mensagem a seguir aparecerá em seu terminal se você estiver se conectando ao seu host pela primeira vez, digite yese pressione Enter.

A autenticidade do host '172.105.XX.XX (172.105.XX.XX)' não pode ser estabelecida.
A impressão digital da chave ECDSA é xx: xx: xx: xx: 77: fe: 73: xx: xx: 55: 00: ad: d6: xx: xx: xx.
Tem certeza de que deseja continuar se conectando (sim / não)? sim

Agora, o ssh-copy-idutilitário procurará o arquivo com o nome id_rsa.pubque contém a chave SSH pública. Assim que o processo de digitalização for concluído, ele solicitará que você insira a senha do seu servidor remoto, conforme mostrado abaixo. Digite a senha e clique em Enter.

/ usr / bin / ssh-copy-id: INFO: tentativa de fazer login com a (s) nova (s) chave (s), para filtrar qualquer uma que já esteja instalada
/ usr / bin / ssh-copy-id: INFO: 1 chave (s) permanecem para serem instaladas - se você for solicitado agora é para instalar as novas chaves
Senha de [email protegido] :

Assim que a chave for adicionada, a seguinte mensagem aparecerá em seu terminal como saída.

Número de chaves adicionadas: 1
Agora tente fazer o login na máquina, com: "ssh ' [email protected] '" e certifique-se de que apenas a (s) chave (s) que você deseja foram adicionadas.

Caso você tenha várias chaves SSH em seu computador cliente, para copiar a chave pública apropriada para seu computador remoto, digite o comando no padrão mostrado abaixo.

ssh-copy-id -i id_rsa_xxx.pub [email protected]

💡 Dica

Não se esqueça de colocar .pub no final do nome do arquivo ao digitar no terminal.

Copiando a chave pública pelo método de tubulação

Digite o seguinte comando no terminal se o ssh-copy-idutilitário não estiver disponível. Este comando pode parecer um pouco mais demorado, mas funciona de maneira adequada.

cat ~/.ssh/id_rsa.pub | ssh [email protected]_ip_address "mkdir -p ~/.ssh && touch ~/.ssh/authorized_keys && chmod -R go= ~/.ssh && cat >> ~/.ssh/authorized_keys"

Substitua remote_usernamee server_ip_addresspelo seu nome de usuário e endereço IP.

Se você tiver várias chaves SSH disponíveis em seu computador, substitua o id_rsa.pubpelo arquivo de chave SSH pública de sua escolha. Por exemplo id_rsa_client_1.pub,.

Digite a senha do usuário remoto quando solicitado e pressione Enter.

[email protected]'s password:

Depois de digitar a senha, o id_rsa.pubarquivo será copiado para o authorized_keysarquivo do servidor remoto.

Cópia manual da chave pública

Use este método quando você não tiver acesso ao seu sistema remoto por meio da autenticação de senha.

Abra o id_rsa.pubarquivo usando o catcomando no terminal. Você também pode abri-lo em um editor de texto, a finalidade é apenas copiar o conteúdo do arquivo.

cat ~/.ssh/id_rsa.pub

O conteúdo do arquivo será semelhante, conforme mostrado abaixo.

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQComjFtuHvHQ67uf3RXg2wgK4EtxBvBvLCtlc4chG + nJ1cbuJjJ6G8az4xsRN1Q7hrV4dYR81Tk3gRApiMdGcMvInU3Vb7Wq3nh9GS4xnLRH1wvb149wogum2MycIES69Xh0cib + VvJyZ + dGO8zRNT64 + SvfiecRV0llnBGWDRqrIGtMHJkKz7VDKuSyzDit / Ck1NFXxC6Plw3cEMOhWHycm8bnSHSoVpr95ySxxnokX4 / 9iAlvOovxTpMpmDaDvuHKgHxcsOv9Q4sz // 6HY / 65 + qqmiuLyuIQXjDiiYTjHTx + VNi6S0iMLoN6XgDLp0MfG6kLvZ0Z + csqdvIDQfMuH [email protected] _PC

Agora, faça login em seu servidor remoto e cole o conteúdo copiado usando o comando mostrado abaixo. Substitua o above_stringpelo conteúdo copiado.

echo above_string >> ~/.ssh/authorized_keys

Configurando várias chaves SSH (opcional)

Esta etapa é para pessoas que têm várias chaves SSH configuradas em seu computador cliente. Pule esta seção se você tiver apenas uma configuração de chave SSH.

Para gerenciar várias chaves SSH, agora criaremos um configarquivo dentro do .sshdiretório usando o comando mostrado abaixo.

cd ~/.ssh
vim config

Digite ipara entrar no modo de comando e digite os detalhes de vários hosts, conforme mostrado no exemplo a seguir:

Host remote-ubuntu-server
HostName 172.105.XX.XX
User root
IdentityFile ~/.ssh/id_rsa_client_1

Host remote-ubuntu-server
HostName 172.106.XX.XX
User root
IdentityFile ~/.ssh/id_rsa_client_2

Da mesma forma, digite os detalhes de outros servidores remotos e suas chaves. Quando o processo estiver concluído, pressione Esce :wqpara salvar e sair.

Agora, os processos subsequentes são iguais para ambos terem uma ou várias chaves SSH no computador cliente.

Faça login em seu servidor remoto usando chaves SSH

Assim que o processo de cópia de sua chave pública for concluído, faça login em seu servidor remoto digitando o comando conforme mostrado abaixo.

ssh [email protected]_ip_address

Se você forneceu a frase secreta ao gerar o par de chaves, será solicitado que você a insira. Uma nova sessão será aberta após a conclusão do processo de autenticação.

Agora você configurou com êxito a autenticação baseada em chaves SSH em seu servidor remoto. Mas a autenticação baseada em senha ainda está ativa em seu servidor, isso significa que seu servidor mais remoto ainda está sujeito a ataques de força bruta.

Portanto, agora iremos desativar o mecanismo de login baseado em senha completamente de nosso servidor remoto.

Desativar mecanismo de login baseado em senha

Antes de fazer qualquer alteração, certifique-se de que o usuário root ou qualquer usuário habilitado para sudo para sua conta remota tenha acesso ao seu servidor usando o sistema de autenticação baseado em chave SSH. Esta etapa irá bloquear ou desabilitar o login baseado em senha completamente, então é crucial que pelo menos um usuário com privilégios de root tenha acesso ao servidor através da chave SSH.

Faça login em seu servidor Ubuntu remoto e digite o comando mostrado abaixo.

sudo vim /etc/ssh/sshd_config
  • Imprensa Esc, /e tipo 'PasswordAuthentication' e hit enter
  • Agora pressione ie altere o valor de 'PasswordAuthentication yes' para 'PasswordAuthentication no'.
  • Pressione Esce repita o processo acima para localizar 'ChallengeResponseAuthentication', 'UsePAM' e altere seus valores para notambém.
PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM no

Assim que todos os valores estiverem configurados para no, pressione Esc, digite :wqe pressione enter.

Para ativar todas as alterações reinicie o sshserviço usando o comando abaixo.

sudo systemctl restart ssh

Agora abra uma nova janela de terminal em seu computador e verifique se a autenticação de chave SSH está funcionando corretamente antes de fechar a sessão atual.

Assim que o processo de verificação for concluído, feche todas as sessões em execução.

Agora configuramos com sucesso a autenticação baseada em chave SSH em nosso servidor Ubuntu 20.04. Agora ninguém pode fazer login no seu servidor usando um mecanismo de login baseado em senha. 


Como copiar e colar no Chromebook

Como copiar e colar no Chromebook

A primeira coisa que você pode se perguntar ao mudar para um Chromebook é como fazer as coisas básicas - o tipo de coisa que você tinha nas costas da mão em seu sistema operacional anterior. Copiar e colar é uma função fundamental que você deve usar em um ponto ou outro.

Como fazer um teste de digitação no Linux com tt

Como fazer um teste de digitação no Linux com tt

Na era moderna da tecnologia, a digitação se tornou uma das atividades mais comuns para muitas profissões. Aprender a digitar mais rápido com precisão pode ajudá-lo a realizar mais tarefas no mesmo período.

Wi-Fi não funciona no Ubuntu? Veja como consertar

Wi-Fi não funciona no Ubuntu? Veja como consertar

O Ubuntu é popular por sua robustez e relativamente menos erros. Mas não sem seu saco de problemas, com certeza. Um desses problemas é com o driver Wi-Fi. Você pode ligar o sistema apenas para descobrir que o Wi-Fi não está funcionando.

Como criar e ler códigos QR no Chromebook

Como criar e ler códigos QR no Chromebook

Códigos de resposta rápida, ou códigos QR para abreviar, são códigos de barras avançados que contêm mais informações do que um código de barras tradicional. Esses códigos são bidimensionais, permitindo que você os escaneie vertical ou horizontalmente.

Como instalar e remover pacotes no Arch Linux

Como instalar e remover pacotes no Arch Linux

Quer instalar pacotes no Arch Linux, mas não sabe como? Muitas pessoas enfrentam esse problema quando migram pela primeira vez de distribuições baseadas em Debian para o Arch. No entanto, você pode gerenciar facilmente pacotes em seu sistema baseado em Arch usando gerenciadores de pacotes.

Como instalar o Spotify no Linux

Como instalar o Spotify no Linux

O Spotify é um dos maiores serviços de streaming de música que existe. Possui clientes nativos para dispositivos móveis (Android e iOS) e desktop (Mac e Windows).

9 comandos básicos para começar a usar o Linux

9 comandos básicos para começar a usar o Linux

Os guias de instruções do Linux geralmente esperam que você execute certas operações no terminal, que podem parecer intimidantes no início. Mas não se preocupe; esta folha de dicas de comandos do Linux cobrirá o processo de abertura de um terminal e emissão de alguns comandos úteis.

Como mover arquivos do Linux com o comando Mv

Como mover arquivos do Linux com o comando Mv

Embora você provavelmente já saiba como mover um arquivo no Linux usando o navegador de arquivos GUI, você pode estar se perguntando se existe um comando mover no terminal que permite mover arquivos rapidamente para diretórios diferentes. O comando mv é o que você deseja e é fácil de usar com sua sintaxe simples e alguns sinalizadores de segurança opcionais.

Diferença entre o superusuário raiz no Ubuntu

Diferença entre o superusuário raiz no Ubuntu

Quer saber qual é a diferença entre Root Superuser no Ubuntu? Bem, nós temos você coberto aqui.

As 10 melhores distribuições Linux baseadas em Debian

As 10 melhores distribuições Linux baseadas em Debian

O Debian padrão e seu derivado popular Ubuntu são ótimas opções versáteis para um sistema Linux, mas se você tiver necessidades mais especializadas, pode querer uma alternativa Debian.