I need advice/best practice on how I can avoid keying in passphrase when I add this crontab to run everyday.
Crie uma nova chave ssh
com uma senha vazia, especialmente para essa tarefa. Salve em um arquivo, digamos, ~/.ssh/cron
. Adicione sua chave pública correspondente a ~/.ssh/authorized_keys
na máquina remota. Quando você executar o scp
de cron(8)
, faça isso com a nova chave:
scp -i ~/.ssh/cron ...
Isso é tudo o que existe, você não precisa de ssh-add
.
eval 'ssh-agent -s'
Ao contrário da crença popular, esta é uma prática ruim . ssh-agent
não é morto quando você sai do terminal, e fica com você para todo o sempre, inútil, mas totalmente autenticado, feliz para sempre. Você não poderá se conectar a ele, mas sempre estará lá para descobrir e usar algum trojan bacana. Você também acumulará muitas cópias ao longo do tempo.
Faça assim:
ssh-agent /bin/bash -l
Isso gera um shell e sai quando você sai do shell. Não tente fazer script, use-o somente para sessões interativas e mate-o assim que terminar.