A primeira maneira de invocar o comando não cria um arquivo, enquanto o segundo pode ou não. Tente dizer ao sshd para não criar um arquivo. Em seu arquivo authorized_keys:
command="/usr/local/bin/myscript.sh",from="client",no-pty ssh-rsa...
Se você quiser ssh na linha de comando quando a opção no-pty
estiver definida em seus arquivos authorized_keys
, você deverá redirecionar o STDIN para ler /dev/null
ou receber um erro informando PTY allocation request failed on channel 0
:
$ ssh auto@remoteserver < /dev/null > content.tar.gz
Se, em vez disso, você executar o comando ssh
sem um terminal de controle, não há STDIN disponível e você pode omitir a parte < /dev/null
. Então no cron você pode fazer o seguinte sem problema:
0 4 * * * ssh auto@remoteserver > content.tar.gz