[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:
- Você cria a chave
- 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
- 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
No comments