Você tem duas opções principais:
-
O ruim: use algo como
pscp
, que permite enviar a senha. Deman pscp
:-pw password Set remote password to password. CAUTION: this will likely make the password visible to other users of the local machine (via commands such as 'w').
This will require you to have the password in the crontab file, which is a simple text file and that is not a good idea. On my Debian, with
pscp
0.63, the password is actually masked in the output ofw
andps
&co but based on the man page quoted above, you cannot assume that will always be the case. -
O melhor: configurar ssh sem senha para o usuário que precisa executar o
scp
comando. Se você não quiser fazer isso para seu usuário normal, basta criar um novo usuário e executar o crontab como esse usuário.
Alternativamente, você pode configurá-lo ao contrário. Em vez de ter um usuário em machineA copiando um arquivo de machineB, solicite que um usuário em machineB copie o arquivo para machineA.
Sim, você pode fazer isso com um script expect
, mas os mesmos problemas de segurança serão aplicados se você quiser incluir a senha no script.