Quero configurar um trabalho RSync que se conectaria através do SSH.
Eu tenho meu computador (backup @ myhost) e o host remoto (test @ remhost) e preciso fazer backup da pasta ~ / algo com todo o seu conteúdo. O teste do usuário ssh somente tem acesso de LEITURA a todos os arquivos e pastas na pasta ~ /. Eu quero usar o rsync para copiar a pasta test @ remhost: ~ / something para a pasta backup @ myhost: ~ / bak.
Para esse fim, uso o seguinte comando via BASH no Ubuntu 11.10 (Oneiric):
rsync -avz -e ssh test@remhost:~/something/ ~/bak/
Depois de pressionar enter, recebo o seguinte:
test@remhost's password:
Eu digito a senha e o rsync funciona.
Quero fazer o comando acima para inserir automaticamente a senha e passá-la como parâmetro ou inseri-la automaticamente e iniciar o trabalho.
Eu tentei executar, rsync -avz -e ssh test:password@remhost:~/something/ ~/bak/
mas ele ainda pede a senha e é irritante.
Não quero ouvir sobre nenhum tipo de chave (RSA, DSA ou qualquer outro). Eu só quero um comando simples que me faça logon e faça o trabalho.
EDIT: Pode ser um cenário possível, se a autenticação de chave pública estiver desativada e você não puder alterar isso. Por exemplo, se você usa o OpenSSH, precisará de privilégios de root no servidor para editar sshd_config
e adicionar o arquivo PubkeyAuthentication yes
.
Edição: Isto é o que finalmente funcionou para mim:
sshpass -p 'sshpassword' rsync --progress -avz -e ssh test@remhost:~/something/ ~/bak/
Observe que esse método não é considerado seguro, pois envia a senha em texto sem formatação e é vulnerável a ataques man-in-the-middle. É recomendável usar a autenticação de chave para uma segurança mais forte.