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 😉