Autenticação de chave pública ssh no Linux

Autenticação de chave pública ssh no Linux

Este tutorial explica como usar a autenticação de chave pública ssh em vez do método de login de senha mais usado.

Depois de ler este tutorial, você saberá como configurar seu acesso SSH usando a autenticação das chaves. Após as instruções práticas, você pode encontrar informações sobre o processo de autenticação, vantagens e desvantagens sobre a autenticação por senha.

Configurando a autenticação de chave SSH no Linux

Para começar, você precisa gerar chaves públicas e privadas. As chaves privadas e públicas são geradas simultaneamente pelo mesmo dispositivo e depois compartilhadas com dispositivos que você deseja permitir conexões entre.

Neste exemplo, geraremos chaves de autenticação de um cliente usando o comando ssh-keygen e depois enviaremos a chave pública para o servidor para permitir conexões entre eles.

Para gerar as chaves, você precisa fazer login como o usuário pode se conectar. Neste tutorial, o usuário criado no servidor e no cliente é Linuxhint.

Depois de executar o comando ssh-keygen, o processo perguntará em qual arquivo você deseja salvar a tecla, pressione Enter para deixar o local padrão (~///.ssh/id_rsa).

Você também será solicitado a uma senha para criptografar sua chave. Isso é recomendado, mas a maioria dos dispositivos autenticados importantes não o usa. Você pode digitar uma senha e pressionar Enter, ou pode apenas pressionar Enter, deixando o campo vazio para evitar criptografar sua tecla.

Para gerar chaves públicas e privadas, execute o comando abaixo.

Observação: No exemplo abaixo, você pode ver no meu caso que eu já tinha autenticação importante, e o processo me pergunta se eu quero substituir a chave anterior. Se você não tinha uma chave anterior, você pode ignorá -la.

$ ssh-keygen

Como você pode, ver as chaves foram geradas corretamente.

Conforme explicado anteriormente, depois de gerar suas chaves do cliente, você precisa enviar a chave pública para o servidor para o qual deseja se conectar. Para compartilhar a chave pública com o servidor, você pode usar o comando ssh-copy-id, seguido pelo nome de usuário que deseja conectar e o endereço IP do servidor, como mostrado abaixo.

$ ssh-copy-id [email protected]

A chave foi instalada corretamente no servidor. Agora, você pode se conectar usando o SSH seguido pelo nome de usuário e pelo endereço IP do servidor, como mostrado abaixo.

$ ssh [email protected]

No meu caso, digitei uma senha ao gerar chaves. Assim, ao tentar acessar uma chave, sou solicitado a digitar a senha. Se você também digitou uma senha ao gerar chaves, preencha o campo e pressione o desbloqueio para conectar -se.

Como você pode ver na captura de tela a seguir, a conexão foi estabelecida com sucesso.

Desativar a autenticação de senha

Agora você ativou a autenticação de chave pública do SSH no Linux, você deve desativar o método de autenticação de senha. Para alcançá -lo, você precisa editar o arquivo de configuração SSH/etc/ssh/sshd_config.

Você pode usar o seguinte comando para editar/etc/ssh/sshd_config usando o editor de texto nano.

$ sudo nano/etc/ssh/sshd_config

Encontre a linha que contém a senha da autenticação sim mostrada na captura de tela abaixo.

Edite a linha,

PasswordAuthentication Sim

Mude para:

PasswordAuthentication no

Salvar e sair do arquivo. Se você usou o Nano para editar o arquivo, pode pressionar Ctrl+X para sair de salvar alterações.

Para aplicar as alterações, você precisa reiniciar o serviço SSH. Para fazer isso, execute o comando abaixo.

$ sudo systemctl reiniciar ssh

Seu login de senha está desativado e você pode se conectar usando a autenticação das chaves.

Desativando o login da raiz

Desativar o login de raiz também é uma ótima maneira de aumentar a segurança do seu sistema. O usuário raiz é universal e vulnerável a ataques de força bruta. Dessa forma, você pode impedir que qualquer um de bruto forçando a raiz ou a fazer login remotamente com privilégios.

Você pode desativar o login root editando o mesmo arquivo/etc/ssh/sshd_config, como mostrado abaixo.

$ nano/etc/ssh/sshd_config

Encontre a linha que contém Permitrootlogina Sim mostrado abaixo.

Edite a seguinte linha:

Permitrootlogina sim

Mude para:

Permitrootlogina no

Saia salvar mudanças pressionando Ctrl+X.

Reinicie o serviço SSH:

$ sudo systemctl reiniciar ssh

Seu login de raiz está desativado.

Senha vs métodos de autenticação -chave

Como você pode ver, o processo de autenticação principal é fácil de implementar. Quando você faz login no servidor para o qual deseja conectar, sua chave privada permanece segura em seu sistema e não é enviada ao servidor. Em vez disso, o servidor envia sua chave pública para o cliente, onde a autenticação ocorre.

Há razões pelas quais alguns usuários optam pela autenticação -chave e outros para login de senha.

Alguns usuários escolhem um método de autenticação importante, pois gera automaticamente as chaves mais fortes do que as senhas fabricadas pelo homem. Além disso, as chaves privadas não são entregues ao servidor. Eles não são vulneráveis ​​a ataques de homem no meio. Ao usar a autenticação chave, apenas dispositivos com a chave privada podem se conectar, aumentando a segurança.

Por outro lado, alguns usuários escolhem o login de senha porque podem se conectar a partir de qualquer dispositivo. Credenciais de senha também são mais fáceis de distribuir se você tiver muitos usuários para administrar.

Conclusão

Como você pode ver, aumentar a segurança do seu sistema, substituindo o login de senha pela autenticação das chaves, é um processo muito fácil, incluindo alguns comandos para gerar a chave e compartilhá -la. Além disso, desativar a autenticação de senha requer apenas a substituição de um sim por um não no arquivo de configuração SSH e reiniciando o serviço. Outros métodos para aumentar sua segurança do SSH podem ser aprendidos no desativar tutoriais de autenticação de dois fatores do RAOT SSH e Linux.

Espero que este tutorial explique como usar a autenticação de chave pública ssh no Linux foi útil.