Backup remoto usando SSH

Neste artigo irei mostrar uma maneira de realizar um backup remoto de arquivos de configuração de servidores, usando shell script e chaves ssh.

[ Hits: 36.662 ]

Por: Fernando R. Durso em 04/02/2008


Cenário



Imagine a situação em que devemos gerenciar muitos servidores remotamente, inclusive em outras cidades... este é o meu caso e percebi a necessidade de manter um backup atualizado das configurações dos servidores que gerencio, pois em caso de perda de um deles a recuperação se daria com uma instalação do sistema e depois descompactar um arquivo na raiz do sistema sobrescrevendo os arquivos necessários.

Então desenvolvi 2 scripts que fazem isso, um fica nos servidores sendo executado pela cron gerando os arquivos com o backup e outro na minha máquina para realizar o download e gerar um log simples.

Para a comunicação resolvi utilizar o ssh e para não precisar digitar senha usei autenticação por chaves.

Preparando a comunicação

Para realizar as conexões via ssh sem a necessidade de senha, primeiro gere as chaves da sua estação:

$ ssh-keygen -q -t rsa1 -N "senha_chave" -f ~/.ssh/identity
$ ssh-keygen -q -t rsa -N "senha_chave" -f ~/.ssh/id_rsa
$ ssh-keygen -q -t dsa -N "senha_chave" -f ~/.ssh/id_dsa


Agora você precisa copiar a sua chave pública para as máquinas remotas.

$ scp ~/.ssh/id_rsa.pub [email protected]:~/.ssh/authorized_keys2
$ scp ~/.ssh/identity.pub [email protected]:~/.ssh/authorized_keys


Pronto! feito isso a sua estação poderá se logar com o usuário user.

Obs:

1. O seu usuário não precisa ser o "user", mas você se logará como "user" nos servidores remotos.

2. Após copiar a authorized_keys2 quando você for copiar a authorized_keys você perceberá que o pedido de senha mudou, você deverá entrar com a "senha_chave" e não mais com a senha de "user".

Aí você pergunta: Mas ainda pede senha! Sim é verdade, só que aí na sua estação você irá digitar o comando ssh-add ele vai te pedir uma senha, você coloca a "senha_chave" e pronto, na próxima vez que você logar vai direto!

Também não fiz o procedimento como root para ter uma maior segurança, vai que a chave cai na mão de quem não deve...

    Próxima página

Páginas do artigo
   1. Cenário
   2. Script de backup
   3. Script que realiza o backup remoto
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Processos no Linux

Utilizando o X-Deep32 para rodar programas Linux em máquina Windows

Exclusivo - Entrevista com Fábio Berbert, criador e mantenedor do projeto Viva o Linux!

Falta de padronização no Linux

BC: A sua calculadora programável no Linux

  
Comentários
[1] Comentário enviado por AndreFranca em 05/02/2008 - 23:29h

Vou testar em meus clientes....
Já foi "pros" favoritos!!!!
valeu!!!

[2] Comentário enviado por removido em 17/02/2008 - 13:32h

ola vc pode me dar mais detalhes de como faço esse backup, é que sou iniciante. Detalhes como: eu quero copiar os diretorios que estão no /dados; /publico; /sistema; como fazer?

valeu

[3] Comentário enviado por fernandord em 18/02/2008 - 00:27h

no script de backup é só colocar os diretórios com os caminhos absolutos em "ELEMENTOS"

t+

[4] Comentário enviado por jucaetico em 07/07/2008 - 14:40h

Show, valeu!

[5] Comentário enviado por helioalb em 16/07/2008 - 10:52h

Fernando, muito bom o seu artigo, já está nos meus favoritos.
Parabéns!!!!

[6] Comentário enviado por psdrop em 27/08/2008 - 11:43h

Parabéns,

Estava precisando muito....

Obrigado

[7] Comentário enviado por tiago_s em 10/11/2008 - 18:17h

Depois de criar as chaves publibas eu digito o comand #ssh-add e ele me retorna o seguinte erro: Could not open a connection to your authentication agent.

Voce sabe o que pode estar ocorrendo?

[8] Comentário enviado por eilton em 07/05/2013 - 15:26h

Fernando boa tarde,

eu tenho um servidor na empresa que trabalho, tenho o Ubuntu 12 instalado nos terminais, e o Debian instalado no servidor, já criei os usuários e suas pastas, gostaria se possivel, como devo utilizar o script que vc criou, para que eu possa fazer os backups neste servidor, sou iniciante e gostaria de um passo-a-passo para que eu não me perca.

Desde já agradeço pela sua atenção.


Contribuir com comentário