Autenticação SSH com uso de chaves ou como fazer login no Linux sem senha.
Autor: Gabriel P. Silva | Publicado: 2016-11-11T12:08:00-02:00



Autenticação SSH baseada em Chaves




               
      







A abreviatura SSH
 significa Secure Socket Shell, que é basicamente um protocolo utilizado
 para realizar o login seguro a um servidor ou computador remoto, 
enviando a senha de uma forma encriptada entre os dois computadores. Caso a senha seja eventualmente capturada por um "hacker" ou programa 
espião, ele apenas encontrará uma sequência encriptada sem uso algum 
para ele.

Mesmo assim, é comum precisamos fazer login diversas vezes via SSH a partir de uma máquina para outra. Ề desconfortável, para não dizer inseguro, digitar as senhas todas vez que precisamos ter este acesso. Para evitar este trabalho, existe uma solução muito simples oferecida pelo protocolo SSH, que é a autenticação baseada em chaves, como descrita a seguir.

Vantagens do uso login com autenticação baseada em chaves. 

Opção mais segura que outras técnicas de login&nbsp;
Não há necessidade de lembrar ou salvar senha em "papeizinhos" colocados no seu monitor
Pode ser utilizado para execução automática de programas ou "scripts" remotamente sem necessidade de senhas
O uso de chaves privadas garanes uma autenticação mais segura
Protege o seu servidor de acessos não autorizados

Os seguintes passos são necessários para ativas a autenticação SSH baseada em chaves. 








               
      








Passo 1: Criar a chave SSH 
Primeiramente&nbsp; você precisa criar uma chave SSH que identifique unicamente o seu sistema local. Esta chave é que será utilizada para acessar os servidores remotos. Para fazer isso no Fedora ou em outro sistema Linux ou similar, se o comando “ssh-keygen” para gerar essa chave da seguinte forma:









               
      







$ mkdir ~/.ssh
$ cd ~/.ssh  
$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/gabriel/.ssh/id_rsa): [Press Enter]
Enter passphrase (empty for no passphrase):
[Provide Passphrase or password to secure key or just enter for empty password]
Enter same passphrase again: [Press Enter]
Your identification has been saved in /home/gabriel/.ssh/id_rsa.
Your public key has been saved in /home/gabriel/.ssh/id_rsa.pub.
The key fingerprint is:
76:d9:40:4c:87:83:9a:ef:ad:1e:43:ed:64:3f:80:0a root@ip-172-31-17-90
The key's randomart image is:
+---[RSA 2048]----+
| +o.. |
| ..+. |
| o .. |
| o o + |
| E .S B . |
| . +.= o |
| ..o.. o |
| .o. . |
| .o. |
+----------------------+









               
      








Passo 2: Verificando a chave SSH 
Depois de criar a chave, certifique-se que está no diretório “~/.ssh”. Você deve encontrar dois arquivos “id_rsa” and “id_rsa.pub”. 









               
      







$ cd ~/.ssh/
$ ls -l
-rw------- 1 gabriel gabriel 1675 Sep 16 15:51 id_rsa
-rw-r--r-- 1 gabriel gabriel 402 Sep 16 15:51 id_rsa.pub

$ cat id_rsa.pub

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDSPuF/yu4drrrNmPE0h1
enmNVeTphqBJr4odjtT/+cBn8MSE/K+d3L+1a/3D3U8uBDzG5MYQJW9mY4
zscP069gGD8hjQrbBwpDFdUzO43NiUaBubMI5SCotJZkiG61pc0zv8c4y+
4EbSwWUMpBomhOWHuNMyZq0dXkZZ2FgykVGoPYNX8ObPYSwbPipEPCttpV
c0uJ6cyUjPj43UHiMSA+sJNWFtC1k1jW0K3jddOfzWI1og7wwU+FaODXUE
KhWvuRWThCWefZUASfoBuUmWjlDMtawK1s3Lf7M5Jo3GdWYp149Gcf4iv4
pbQMg8ki/bQrJS5 seulogin@seucomputador









               
      








Passo 3: Copiando a chave para o servidor remoto 
Agora faça a cópia da chave gerada para os servidor remoto com o seguinte comando (não esqueça o ":" no final):
&nbsp;









      







Você vai precisar fornecer a sua senha de login no servidor remoto para o comando ser executado. 

Passo 4: Adiconando a chave 
&nbsp;Faça login no servidor remoto e execute o seguinte comando (use "&gt;&gt;"):&nbsp;

$ cat id_rsa.pub &gt;&gt; ~/.ssh/authorized_keys

&nbsp;
Certifique-se que o arquivo tenha com as permissões de acesso corretas com o comando:&nbsp;

$ chmod 600 ~/.ssh/authorized_keys 

Passo 5: Verifique o acesso
















Faça logout e tente novamente o login no servidor remoto com o comando:&nbsp;

$ ssh usuario@seu.servidor.remoto.br

Caso o login seja realizado sem pedir a senha, parabéns, você terminou por aqui. 

Passo 6: Comandos adicionais
Se houve algum problema com o seu login, ou mesmo ainda continuar solicitando a senha, vai ser necessário dar o login no servidor remoto e&nbsp; fazer alguns ajuste como "root". Edite o arquivo&nbsp; “/etc/ssh/sshd_config” e mude a linha onde tem&nbsp; PasswordAuthentication e PubkeyAuthentication&nbsp; de ‘no’ para ‘yes’.
&nbsp;
$vim /etc/ssh/sshd_config 
PasswordAuthentication yes
PubkeyAuthentication yes





      







Depois dos ajustes acima vai ser preciso reiniciar o serviço ssh para que as mudanças sejam efetivadas.








               
      







#service sshd restart

















               
      
    
    
   
    
    
    
     Eu espero que este artigo possa ter sido útil para você. Deixe seu comentário. Abs.