17 de jan. de 2019

[ssh-keygen] Uma relação de confiança e amor

Autenticação baseada em chaves através do serviço ssh


Olá, meu c4r0!

Corriqueiramente nos conectamos ao mesmo servidor durante o dia via ssh  aos quais possuem senha, sendo necessário digita-la em todos os acessos, eu acho inconveniente digitar a senha diversas vezes, estressa e faz mal. rsrs 

 Se não fossem as macros do MobaxTerm eu faria como no gif abaixo. 

Em vez de usar a autenticação baseada em senha o ssh permite que a autenticação seja baseada em chave. Como funciona: 

  1. Você cria a chave
  2. Você guarda a chave privada, mas copia a chave pública por meio da conta de usuário do host remoto para o qual você quer fazer a autenticação baseada em chave
  3. Com suas chaves copiadas para os locais apropriados, você pode usar todas as ferramentas ssh para se conectar à conta do usuário no host remoto, mas em vez de pedir senha, o seviço remoto compara a chave pública e a chave privada e permite o acesso se as duas chaves coincidirem



Etapas 


  • Instalação do openssh-server
  • Gerando chaves rsa com ssh-keygen 
  • Copiando a chave pública para o servidor
  • Realizando autenticação sem senha 



Instalação do openssh-server


Primeiramente, antes de tudo, é preciso que o servidor possua o pacote openssh-server instalado.

Debian:   $ apt install -y openssh-server

CentOS: $ yum install -y openssh-server


Gerando chaves rsa com ssh-keygen



[root@localhost isweluiz]# ssh-keygen -t rsa -b 4096 -C "mastermind47@protonmail.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:zV8rkTpM5JhUDEujdZEE+d3y8jacS1TMBOkfPEXtJAY mastermind47@protonmail.com
The key's randomart image is:
+---[RSA 4096]----+
|        **=oE..++|
|       +.=o   +++|
|      . o... +.+=|
|       . B. o.o=.|
|        S = ooo.o|
|         o o.+...|
|          + o+o. |
|           . o*  |
|             ..o |
+----[SHA256]-----+


Copiando a chave pública para o servidor


[root@localhost isweluiz]# ssh-copy-id -i /root/.ssh/id_rsa.pub ak47@postgres
/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
The authenticity of host 'postgres (35.247.201.143)' can't be established.
ECDSA key fingerprint is SHA256:NdnTkFE4mozHnaXyVbG4MYp8SOGTtwc2mSPKsOC+53s.
ECDSA key fingerprint is MD5:f0:88:55:7b:a0:c5:75:62:8b:6f:0b:f8:15:5d:a6:4c.
Are you sure you want to continue connecting (yes/no)? yes
/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
ak47@postgres's password:

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'ak47@postgres'"
and check to make sure that only the key(s) you wanted were added.


Realizando autenticação sem senha 


[root@localhost isweluiz]# ssh ak47@postgres
Linux instance-sisdimen 4.9.0-8-amd64 #1 SMP Debian 4.9.130-2 (2018-10-27) x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Wed Jan 16 22:54:21 2019 from 189.40...


E é isso, até o próximo ... :)





Leitura recomendada



Nenhum comentário:

Postar um comentário