Secure Shell ou SSH é um protocolo de rede de código aberto bem conhecido. O protocolo é usado para fazer o login em outras máquinas remotamente. Portanto, seria fácil executar vários comandos e iniciar qualquer aplicativo no dispositivo remoto sem problemas, sem a necessidade de estar perto da máquina remota. Além disso, o protocolo SSH é muito confiável e seguro. Os usuários sempre dependem do protocolo SSH para copiar arquivos entre dois dispositivos diferentes.
Geralmente, para estabelecer uma conexão SSH com a máquina remota, você precisa inserir o nome de usuário e a senha da máquina remota. Mas e se você precisar de um método mais seguro do que usar o nome de usuário e a senha em cada login? Isso pode ser feito usando uma chave SSH gerada a partir da máquina do cliente e, em seguida, copiada para a máquina remota. Com pequenas configurações extras, você será capaz de fazer o login com segurança na máquina remota sem usar um nome de usuário e senha todas as vezes. Usar uma chave SSH em vez de usar o nome de usuário e senha em cada login é muito mais seguro; apenas a máquina que contém a chave SSH certa pode fazer login rapidamente.
Hoje vamos mostrar como estabelecer uma conexão SSH sem a necessidade de digitar a senha da máquina remota. Normalmente, o uso de um login sem senha pode ser usado para transferir arquivos entre várias máquinas rapidamente. Mas antes de começar nosso tutorial, vamos dar uma olhada em nosso ambiente.
Preparação do Ambiente
Seria melhor se você tivesse duas máquinas, o cliente e as máquinas remotas. Quase todo o trabalho será feito a partir da máquina cliente que será usada para se conectar ao dispositivo remoto. Ambos os dispositivos são Ubuntu com os seguintes IPs
- O cliente máquina tem um IP 192.168.1.20 com nome de usuário tuts.
- O controlo remoto máquina tem um IP 192.168.1.30 com um nome de usuário Hendadel.
Mais uma coisa antes de começar, certifique-se de que ambas as máquinas estejam atualizadas usando os seguintes comandos:
sudo apt update sudo apt upgrade
Agora vamos começar nosso guia.
Configurando o login SSH sem senha
Passo 1. Na máquina cliente, certifique-se de que haja uma chave SSH gerada antes de usar o próximo comando.
ls -al ~ /.ssh / id_ *.bar
Como você pode notar, se você não gerou uma chave SSH anteriormente, receberá a mensagem "Nenhum arquivo ou diretório". Caso contrário, você obterá rapidamente as chaves disponíveis, caso existam.
Passo 2. Como você não gerou chaves SSH anteriormente, é hora de gerar uma nova chave SSH usando o seguinte comando:
ssh-keygen -t rsa -b 4096
Normalmente, o comando anterior irá gerar novas duas chaves SSH em dois arquivos diferentes. Ambos os arquivos são armazenados em um diretório oculto chamado “.ssh ”no diretório inicial do usuário atual. Você pode encontrar uma chave privada armazenada em um arquivo chamado id_dsa e outra chave pública em um arquivo chamado id_dsa.bar. Além disso, será solicitado que você adicione uma senha que é usada para proteger as chaves geradas e você pode usá-la enquanto se conecta via SSH. Mas você pode pressionar o botão “Entrar”Botão para não usar um.
etapa 3. Agora você pode listar o conteúdo do .diretório ssh para garantir que ambas as chaves sejam criadas.
ls -l / home / tuts /.ssh /
Passo 4. Além disso, você pode certificar-se de que o arquivo contém uma chave usando o seguinte comando:
ssh-keygen -lv
Etapa 5. Para visualizar o conteúdo do arquivo de chave pública.
gato .ssh / id_rsa.bar
Etapa 6. Agora, da máquina remota, certifique-se de ter SSH instalado. Se não estiver instalado, você pode usar o seguinte comando.
sudo apt install ssh
Etapa 7. De volta à máquina cliente, conecte-se à máquina remota e crie um novo diretório chamado .ssh.
sudo ssh remote_machine_username @ remote_machine_IP mkdir -p .ssh
Certifique-se de substituir o remote_machine_username pelo nome de usuário real e o remote_machine_IP pelo IP remoto.
Etapa 8. A seguir, vamos copiar da máquina cliente a chave SSH pública gerada anteriormente para a máquina remota. Ajudaria se você colasse a chave pública em um arquivo chamado “Chaves_Autorizadas”. É altamente recomendável não alterar o nome do arquivo porque, quando você for estabelecer uma conexão SSH, o primeiro arquivo que o sistema operacional verificará é o “Chaves_Autorizadas” Arquivo. Se o sistema não encontrou o arquivo, será solicitado que você insira um nome de usuário e uma senha para poder fazer o login na máquina remota.
gato sudo .ssh / id_rsa.pub | ssh remote_machine_username @ remote_machine_IP 'cat >> .ssh / authorized_keys '
Etapa 9. Da máquina remota, certifique-se de que a chave pública foi copiada com sucesso com o nome authorized_keys.
ls .ssh / cat .ssh / authorized_keys
Etapa 10. Agora, da máquina cliente, vamos tentar estabelecer uma conexão SSH sem um nome de usuário e senha.
ssh remote_machine_username @ remote_machine_IP
Como você pode notar, não será solicitado que você insira um nome de usuário nem uma senha.
Desativar autenticação por senha
Para desabilitar a autenticação de senha usando a chave pública, primeiro você precisa editar o arquivo de configuração SSH da máquina remota e desabilitar a opção de autenticação de senha. Abaixo estão as etapas para fazer isso.
Passo 1. Na máquina remota, abra o arquivo de configuração ssh usando seu editor favorito.
vi / etc / ssh / sshd_config
Passo 2. Role até o final do arquivo de configuração SSH e adicione as próximas linhas para desativar a autenticação de senha:
RSAAuthentication sim PubkeyAuthentication sim PasswordAuthentication não UsePAM não ChallengeResponseAuthentication não
etapa 3. Salve e saia do seu arquivo.
Passo 4. Por fim, reinicie o serviço SSH e tente estabelecer uma nova conexão da máquina cliente para a máquina remota novamente.
É isso! Você acabou de aprender como estabelecer uma conexão SSH sem senha. Espero que você tenha gostado.