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.