Pesquisa de site

Como configurar a autenticação SSH sem senha no RHEL 9


Abreviação de Secure Shell, SSH é um protocolo de rede seguro que criptografa o tráfego entre dois terminais. Ele permite que os usuários se conectem e/ou transfiram arquivos com segurança em uma rede.

O SSH é usado principalmente por administradores de rede e de sistema para acessar e gerenciar com segurança ativos remotos, como servidores e dispositivos de rede em uma rede. Ele usa métodos de criptografia fortes, como AES e algoritmos de hashing como SHA-2 e ECDSA para criptografar o tráfego trocado entre um cliente e um sistema remoto.

SSH implementa dois métodos de autenticação; Autenticação baseada em senha e autenticação de chave pública. Este último é o mais preferido, pois oferece melhor segurança utilizando a autenticação de chave pública que protege o sistema contra ataques de força bruta.

Com isso em mente, demonstraremos como você pode configurar a autenticação baseada em chave SSH no RHEL 9.

Configuração do laboratório de testes

Esta é a aparência da nossa configuração

  • Um sistema Linux/UNIX (baseado em Ubuntu ou RHEL) no qual geraremos o par de chaves. Para este guia, estou usando a distribuição Ubuntu.
  • Uma instância do RHEL 9 (esta nuvem pode ser um VPS local ou na nuvem).

Etapa 1: gerar o par de chaves SSH ECDSA

Acesse seu sistema Linux e gere o par de chaves SSH conforme a seguir. Neste guia, geraremos o par de chaves usando o algoritmo ECDSA que fornece melhor criptografia e segurança.

Portanto, para gerar o par de chaves ECDSA, execute o comando:

ssh-keygen -t ecdsa

O comando orientará você por uma série de prompts.

Por padrão, o par de chaves é salvo no diretório inicial do usuário dentro do diretório ~/.ssh. Você pode aceitá-lo como destino do par de chaves SSH pressionando ENTER no teclado, caso contrário, você pode especificar seu caminho preferido. Neste guia, decidimos seguir o caminho padrão.

Em seguida, você será solicitado a fornecer uma senha. Esta é basicamente uma senha que você deverá fornecer ao estabelecer uma conexão com o sistema RHEL 9 remoto. Ele fornece uma camada adicional de proteção além da criptografia oferecida pelas chaves SSH.

No entanto, se o seu plano é automatizar processos através da proteção SSH ou configurar autenticação sem senha, é recomendado deixar este campo em branco. E portanto, deixaremos em branco pressionando, mais uma vez, ENTER.

Abaixo está a saída do tempo de execução do comando.

Você pode dar uma olhada no par de chaves SSH usando o comando ls conforme mostrado.

ls -l ~/.ssh

O id_ecdsa é a chave privada enquanto id_ecdsa.pub é a chave pública. A chave privada deve permanecer sempre secreta e não deve ser compartilhada ou divulgada a ninguém. Por outro lado, você tem a liberdade de compartilhar o público com qualquer sistema remoto ao qual deseja se conectar.

Etapa 2: Copiar a chave SSH pública para o RHEL 9 remoto

A próxima etapa é copiar a chave pública para a instância remota do RHEL 9. Você pode fazer isso manualmente ou usando a ferramenta de linha de comando ssh-copy-id. Como o último é muito mais fácil e conveniente de usar, invoque-o usando a seguinte sintaxe.

ssh-copy-id user@rhel-9-server-IP

No nosso caso, o comando será o seguinte onde tecmint é o usuário de login normal e 192.168.254.129 é o endereço IP do usuário remoto.

ssh-copy-id [email 

Digite sim para continuar conectando. Em seguida, forneça a senha do usuário remoto e pressione ENTER.

A chave pública será copiada para o arquivo authorized_keys no diretório ~/.ssh do diretório inicial do usuário remoto. Depois que a chave for copiada, você poderá fazer login na instância remota do RHEL 9 usando autenticação de chave pública.

NOTA: No RHEL 9, o login root via SSH é desabilitado ou negado por padrão. Isto ocorre por boas razões – evita que um invasor faça login usando a conta root, que lhe concederá todos os privilégios no sistema. Portanto, copiar a chave pública para o sistema RHEL como root falhará.

Habilitar login root no RHEL 9

Se precisar fazer login como root, você precisará editar a configuração SSH padrão da seguinte maneira.

sudo vim /etc/ssh/sshd_config

Em seguida, defina o atributo PermitRootLogin como yes, salve as alterações e saia do arquivo.

Para aplicar as alterações feitas, reinicie o serviço SSH.

sudo systemctl restart ssh

Etapa 3: verificar a autenticação da chave pública SSH

Agora vamos confirmar a autenticação de chave pública. Para fazer isso, faça login da seguinte maneira.

ssh [email 

Desta vez, não será solicitada uma senha e você será direcionado diretamente para o shell RHEL 9 remoto, conforme mostrado. Você também pode verificar a presença do arquivo authorized_keys conforme mencionado anteriormente.

ls -l ~/.ssh 

Você também pode visualizar o arquivo de chave pública criptográfica usando o comando cat.

cat ~/.ssh/authorized_keys

No desktop Linux no qual geramos as chaves SSH, um arquivo chamado known_hosts é gerado no diretório ~/.ssh. Contém a impressão digital de todos os servidores remotos aos quais o sistema está conectado.

Neste guia, configuramos com sucesso a autenticação baseada em chave SSH no RHEL 9. Seu feedback é muito bem-vindo.