carregue e baixe os arquivos do servidor sem dar senha

2

Eu quero baixar o arquivo do sever usando o cron job, então eu preciso usar o comando scp sem dar senha por palavra-chave.

Como faço isso?

    
por Mukesh 17.12.2014 / 08:20

1 resposta

4

O primeiro passo é gerar um par de chaves público-privado na máquina da qual você copiou:

ssh-keygen

Você pode usar os padrões e não fornecer uma senha para uso. Isso pode demorar um pouco.

O segundo passo, após a conclusão da geração da chave, é copiar a chave pública para o servidor usando:

ssh-copy-id username@server

com os username e server apropriados. Para isso você precisa da senha de username . Se username não tiver uma senha, você poderá copiar o arquivo com a chave pública por meio da conta raiz, mas é muito mais fácil criar temporariamente uma senha para a conta e usar ssh-copy-id

Terceiro passo: testar se a chave pública instalada está funcionando usando: ssh username@server ou scp somefile username@server:/var/tmp

Quarta etapa: adicione uma tarefa cron ( crontab -e ) na máquina cliente:

15 23 * * * scp username@server:/path/on/server/downloadfile /local/destination
17 23 * * * scp /local/source/somefile username@server:/path/on/server/uploaddirectory

Que copiará o arquivo /path/on/server/downloadfile todos os dias às 23:15 do servidor e dois minutos depois começará a carregar /local/source/somefile

Coisas a considerar:

  • Dependendo da segurança do acesso à máquina cliente (de onde você está copiando) e onde a chave privada desprotegida está localizada, você deve considerar a alteração da conta username para permitir apenas scp e não ssh .
  • Se você copiar o mesmo arquivo e o conteúdo principalmente alterado (por exemplo, anexado a, não uma reescrita completa), usando rsync usando o par de chaves ssh acima) será mais eficiente.
por 17.12.2014 / 08:39