Home / Dicas e Tutoriais / Autorizando Acesso SSH Com Chaves – Sem Solicitar Senha

Autorizando Acesso SSH Com Chaves – Sem Solicitar Senha

Olá pessoal,

Hoje, por causa de uma necessidade muito específica, resolvi postar uma forma de credenciar nas configurações ssh de um servidor, para que um client o acesse, sem que senha seja solicitada, para que, por exemplo, scripts de backup possam transferir dados via ssh, sem problemas.

Você pode até pensar que isso pode ser inseguro, mas não é, pois na verdade o acesso via SSH será realizado através da leitura de chave pública e privada, estabelecendo uma confiança entre o servidor e o cliente, permitindo o acesso somente quando validadas as chaves.

1 – Gerando as chaves

Vamos usar o comando ssh-keygen no servidor de origem para fazer isso:

$ ssh-keygen -t rsa -C "Minha_Chave_SSH"
Enter passphrase: 
Enter same passphrase again:

Ele irá pedir para confirmar o caminho, então aperte “Enter” para o padrão. E em seguida ele lhe pedirá a senha, não digite nada, aperte apenas a tecla “Enter” nas duas vezes.

Parâmetros que usamos:

-t -> Especifica o tipo de chave, no nosso caso uma chave RSA

-C -> Comentário da chave

A saída do comando deverá se parecer com isso:

ssh-keygen

Serão gerados dois arquivos, id_rsa (Chave Privada) eid_rsa.pub (Chave Pública).
Você poderá checá-los:

ls ~/.ssh
id_rsa  id_rsa.pub  known_hosts

2 – Copiando a chave pública para o servidor

Agora vamos enviar a chave pública para o servidor destino com o comando scp:

cd ~/.ssh/
scp id_rsa.pub cleuber@ip-do-servidor:/home/cleuber/.ssh/

Pronto copiada!

3 – Checando se a chave pública foi transferida

Vamos fazer um acesso ssh (ainda com senha por enquanto) para checar a chave pública

ssh cleuber@ip-do-servidor

Agora estamos logados remotamente no servidor, cheque com o mesmo comando.

ls ~/.ssh
id_rsa.pub  known_hosts

4 – Criando o arquivo “authorized_keys” com o conteúdo da chave pública nele.

Para fazer isso, você precisa continuar logado no servidor remoto, e usaremos o seguinte comando:

cat id_rsa.pub > authorized_keys

5 – Editando as configurações do Serviço SSH

Ainda não acabamos, vamos agora configurar o SSH do servidor para aceitar autenticação baseado em chave.

Você pode usar seu editor de texto favorito. Eu aqui usarei o nano.

sudo nano /etc/ssh/sshd_config

Obs. Se você precisar configurar isso no HP-UX que usa o Unix, o arquivo de configuração através do caminho /opt/ssh/etc/sshd_config.

Verifique se as seguintes não estão comentadas, ou seja, com um símbolo “#” no início delas, e com o “yes”, na primeira linha, conforme abaixo.

PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys

sshd-services

Como estou usando o nano, salvei com “Ctrl+O” e saí com o “Ctrl+x”

Obs. Opcional

Existem restrições de segurança para que isso funcione, caso as permissões de arquivo requeridas no campo “StrictModes" estiver habilitado e com o “yes”.
No exemplo abaixo, por padrão o StrictModes está comentado com “#” então está desabilitado.

ssh-strictmode

Caso isso esteja habilitado (sem o “#” e com o “yes”),você precisará se certificar que a pasta .ssh tenha a permissão 700, e o arquivo id_rsa esteja com 600, no servidor e no client.

Se precisar, então, faça isso nos dois lados (no cliente e no servidor)

$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/id_rsa

6 – Reinicie o serviço do SSH

Agora, ainda logado no servidor destino, reinicie o serviço SSH.
O comando pode variar dependendo do seu Linux

sudo /etc/init.d/ssh restart
sudo service sshd restart

Obs. Se você estiver usando o HP-UX, reinicie o serviço do SSH com os seguintes comandos:

Parar

# /sbin/init.d/secsh stop

Iniciar

# /sbin/init.d/secsh start

7 – Teste o acesso SSH sem senha

Agora, a hora da verdade…  Faça logoff do acesso ssh que está fazendo em seu servidor remoto e login novamente.

ssh cleuber@ip-do-servidor

Se você fez tudo certo, desta vez não irá pedir-lhe senha.

 

É isso aí pessoal,

Cleuber

About Cleuber

Cleuber Silva Hashimoto. Administrador

2 comments

  1. Ricardo Ramos

    Boa tarde!
    Parabéns pelo seu trabalho! Tem me ajudado muito.
    Eu consigo fazer essa autorização nas duas pontas? Ou seja permitir o acesso sem senha de ambos os lados?

Leave a Reply

x

Check Also

Elementary OS 6 Odin Lançado – Confira as Novidades

Desenvolver um sistema operacional não é ...