SSH automático – Fazendo Backup do Banco de Dados

Hoje vou falar de um assunto que é algo de bastante importância para quem gerencia ou trabalha com servidores/serviços Linux.

como logar num servidor ssh sem uso de senha com segurança

Vamos precisar de duas coisas, gerar duas chaves: pública e uma privada.

Mas agora vem a pergunta: Para que vou querer uma conexão sem senha? Talvez você tenha vários servidores/serviços instalados em um SO Linux, e um deles é sue backup. e você precisar fazer os backups, e todas as vezes você tem que acessar cada sistema e colocar usuário e senha para fazer os backup dos dados, e irá enviar arquivos desses servidores para o de backup. Seria um processo mais rápido, menos custoso você enviar seus dados de forma automática e com horas programadas, podendo gerar alertas de quando o backup foi concluído e enviado com sucesso. Não é o caso nesse tutorial, irei apenas abordar como instalar e configurar a forma de acessar de forma segura e sem senha.

Emfim, deixar de enrolação e partir logo pra por a mão na massa 😉 !

Você poderá criar essas chaves como root ou usuário “comum”.

Cenário de teste:

- 172.16.0.22 - serviço
- 172.16.0.24 - backup

Por segurança eu irei para cada servidor que irá enviar o backup criar um usuário especifico, aconselho que faça o mesmo.

Logue no servidor de backup e crie um usuário que irá receber a conexão. Ex.: bkpservico

$ ssh seu_usuario@172.16.0.24
$ su -
$ adduser bkpservico
$ su - bkpservico
$ mkdir .ssh

Acesse seu servidor de serviço

$ ssh-keygen -t rsa

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:FgtxLxcaRa6IHaca8/lmA/BuE1RID5Rae6V55Qr5oLg root@servico
The key's randomart image is:
 
+---[RSA 2048]----+
|        X==+.    |
|       . &++  . .|
|      . *oX..= o |
|   . o o.B.=B . .|
|  . o . S.*o== . |
|   .   ..+.+ .o  |
|         .       |
|        E        |
|                 |
+----[SHA256]-----+

Com isso temos nossas duas chaves. Dois arquivos foram criados em /home/servico/.ssh/. Sendo eles o id_rsa e id_rsa.pub.

– id_rsa é o arquivo no qual estará guardada sua chave privada. Pois ele será o responsável por toda a segurança de nossa comunicação.
– id_rsa.pub é o arquivo da chave pública, que iremos enviar a todos os servidores para que nosso acesso seja autorizado.

Envie sua chave publica para o servidor de backup para /home/”USUARIO”/.ssh/ com o nome de authorized_keys.

$ scp -P 22  id_rsa.pub bkpserviço@200.200.0.14:/home/servico/.ssh/authorized_keys

Pronto, o servidor 172.16.0.24 aceitara todas as solicitações vindas do usuário q você criou a chave sem solicitar uma senha usuário “serviço”.
Faça um teste do seu servidor “web” com destino ao de backup:

$ ssh serviço@172.16.0.24 -p 22

Se tudo ocorreu como deveria não lhe foi mais solicitado senha! Agora você pode usar o comando scp e enviar seus dados.
Ex.:

$ scp -P 22  meu_bkp.tar.gz serviço@172.16.0.24:/home/servico/

Agora é so fazer seu script pra automatizar o backup dos teus dados diariamente, semanalmente ou como desejar. 😉
Espero que tenha gostado! 🙂

Se não sabe como agendar no CRON clique aqui que te explico em um outro post 😉

Ivan Junior

Trabalho atualmente como Administrador de Redes em um Provedor de Internet no interior da Bahia.

Deixe um comentário