Como Configurar SSH Sem Senha no Linux

fonte: https://www.hostinger.com.br/tutoriais/conexao-ssh-sem-senha/

dica para configurar o acesso ssh sem senha ao seu server

 

 

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

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

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s