Como Configurar SSH Sem Senha no Linux

Como Configurar SSH Sem Senha no Linux

SSH significa Secure Shell. É um protocolo de internet de código aberto que pode ser utilizado para acessar servidores e executar comandos remotamente, o que é perfeito para usuários de VPS! O SCP (Secure Copy Protocol), que é baseado no SSH, pode ser usado para copiar arquivos de um computador para outro. Neste tutorial vamos ensinar como configurar uma conexão SSH sem senha no Linux.

Existem duas maneiras de habilitar o SSH:

  • Autenticação por senha.
  • Autenticação por chave pública.

A autenticação por chave pública também é conhecida como acesso ao SSH sem senha.

Por Que Usar SSH Sem Senha?

Muitos usuários consideram o método de proteção por senha difícil de lembrar e desconfortável, principalmente se você precisa acessar muitas vezes diariamente.

Algumas das vantagens da conexão SSH sem senha são:

  • Login fácil e sem necessidade de interação. Usuários não precisam digitar senha para novas sessões.
  • Mais seguro quando comparado ao método de senha, uma vez que utiliza criptografia de chave pública.
  • Mais confiável.
  • Facilita o gerenciamento de autenticação e autorização.
  • Boa solução para infra estruturas pequenas ou grandes.
  • Fácil de configurar.

Para começar a usar o SSH sem senha é preciso gerar uma chave pública. Neste tutorial vamos focar na versão 2 do SSH, que é a mais recente e mais segura.

Acesse seu servidor VPS via SSH e vamos começar!

Primeiro, verifique se a chave SSH para a máquina cliente já existe. Isto irá prevenir que a configuração atual seja sobrescrita, caso haja uma. Utilize o seguinte comando:

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

Se houver uma chave existente, você tem as opções de pular os passos de geração de uma chave SSH, sobrescrever as configurações atuais ou criar um backup da chave existente. Se a chave não existir, você vai ver o seguinte resultado:

ls: cannot access /users/appsadm/.ssh/id_*.pub: No such file or directory

Em seguida, vamos prosseguir com a geração da chave SSH.

SSH Sem Senha no Ubuntu e CentOS:

Para gerar uma chave pública no Ubuntu ou CentOS, utilize o comando:

ssh-keygen -t rsa

A opção -t significa type, e RSA é o protocolo utilizado na geração da chave. O RSA é o padrão – mas você também pode usar a versão mais simples do comando – ssh-keygen.

A chave padrão é de 2048 bits. Mas se você quer mais segurança basta trocar o valor para 4096 bits. Neste caso o comando será:

ssh-keygen -t rsa -b 4096

Este processo de geração de chave é interativo e você terá que responder algumas perguntas, como:

  • Confirme o arquivo em que a chave será salva (/home/.ssh.id_rsa).
  • Insira a palavra-chave (deixe em branco caso não haja uma).

Você pode pressionar enter em ambas as perguntas para definir o valor padrão. A palavra-chave é utilizada para criptografar a chave privada, mas não é obrigatória e pode ser deixada em branco. A chave privada será salva na localização padrão – .ssh/id_rsa.

A chave pública será salva no arquivo .ssh/id_rsa.pub. Isto completa o processo de geração de chave. Você pode verificar os arquivos com a ajuda de qualquer editor.

Copiar a Chave Pública Para Habilitar a Conexão SSH Sem Senha

Copiar a chave pública para a máquina destino pode ser feito de três maneiras:

  • Utilizar o comando ssh-copy-id.
  • Copiar utilizando o SSH.
  • Copiar manualmente.

A primeira opção é a mais popular e mais rápida. O comando ssh-copy-id é incluso na maioria dos sistemas Linux por padrão. Porém, em alguns casos em que não for possível utilizar o comando, basta usar uma das outras opções.

1° Método: Utilizar o Comando ssh-copy-id

A sintaxe básica para este comando é:

ssh-copy-id usuario_remote@endereço_IP_remoto

Será solicitado que você insira a senha da máquina remota. Uma vez que a autenticação ocorrer com sucesso, a chave pública do SSH gerada será adicionada ao arquivo de chaves autorizadas da máquina remota. Então a conexão será encerrada automaticamente.

2° Método: Copiar a Chave Pública com SSH

O próximo método utiliza o SSH para copiar a chave pública. Esta opção é viável quando você possui um servidor em que o acesso SSH é feito via senha. O comando abaixo irá cuidar do processo, você só precisa inserir o usuário remoto e o endereço de IP da máquina:

cat ~/.ssh/id_rsa.pub | ssh usuario_remoto@edereço_IP_remoto "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

Um registro será adicionado ao arquivo de chaves autorizadas da máquina.

3° Método: Copiar a Chave Pública Manualmente

O terceiro método é mais difícil por ser totalmente manual. Entretanto, em casos em que os métodos anteriores não funcionaram você pode experimentar este! Você irá precisar adicionar manualmente os conteúdos do arquivo id_rsa.pub dentro do arquivo ~/.ssh/authorized_keys do servidor.

Você pode visualizar o conteúdo do arquivo id_rsa.pub utilizando o editor vi ou o comando cat:

cat ~/.ssh/id_rsa.pub

O resultado será a chave gerada, que começa com o valor ssh-rsa. Copie esta chave. Em seguida, vamos acessar o servidor e criar o arquivo .ssh, caso não exista.

mkdir -p ~/.ssh

Você também pode criar o arquivo authorized_keys. Adicione a chave pública do SSH copiada no arquivo vazio, como mostrado abaixo:

echo SSH_chave_pública >> ~/.ssh/authorized_keys

O SSH_chave_pública seria a chave pública que você copiou da máquina fonte. Ela começará com ssh-rsa.

Uma vez que a chave tiver sido copiada, você pode configurar as permissões requeridas pelo com o comando chmod.

chmod -766 ~/.ssh

Testar o SSH Sem Senha

Desta maneira, vamos ter ativado a conexão SSH sem senha com sucesso e realizado as configurações básicas. Para testar a ferramenta, experimente o acesso remoto ao servidor. A sintaxe do comando fica:

ssh usuario_remoto@endereço_IP_remoto

Se tudo funcionou como deveria, você vai ter logado sem precisar colocar uma senha.

Como Desabilitar o SSH Sem Senha

Se você chegar a conclusão que prefere o acesso com senha, é só seguir os passos abaixo para desabilitar a conexão SSH sem senha. Abra o arquivo de configuração /etc/ssh/ssh_config. Qualquer editor irá funcionar, nós utilizamos o nano. Aqui você vai encontrar uma entrada com PasswordAuthentication. Modifique as linhas como mostrado:

PasswordAuthentication no

ChallengeResponseAuthentication no

UsePAM no

Depois de realizar as alterações, reinicie o SSH. No Ubuntu 18.04 fica assim:

sudo systemctl restart ssh

O comando para CentOS 7 é:

sudo systemctl restart sshd

Resumo

Agora você já sabe todos os passos para criar uma chave pública e configurar a conexão SSH sem senha, além de como desabilitá-la. Se gostou deste tutorial, não esqueça de comentar abaixo. Confira também os outros posts do nosso blog!

Author
O autor

Ariane G.

A Ariane é SEO Team Leader com experiência em conteúdo, localização e SEO. Seu desafio é levar a Hostinger ao topo dos resultados no Brasil, França e Reino Unido. Eventualmente ela compartilha seu conhecimento no blog e nos tutoriais da Hostinger e no tempo livre ela gosta de explorar lugares novos e viver intencionalmente.