Eu quero configurar um trabalho do RSync que se conecte por meio do SSH.
Eu tenho meu computador (backup @ myhost) e o host remoto (test @ remhost) e preciso fazer o backup da pasta ~ / alguma coisa com todo o seu conteúdo. O teste do usuário ssh só 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 este propósito eu uso o seguinte comando via BASH no Ubuntu 11.10 (Oneiric):
rsync -avz -e ssh test@remhost:~/something/ ~/bak/
Depois de entrar, recebo isto:
test@remhost's password:
Eu digitei a senha e o rsync funciona.
Eu quero fazer o comando acima para inserir automaticamente a senha e passá-la como um parâmetro ou para 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.
Eu não quero ouvir falar de nenhum tipo de chave (RSA, DSA ou qualquer outra). Eu só quero um comando simples que me conecte e faça o trabalho.
EDITAR: Um cenário possível pode ser, se a autenticação de chave pública estiver desativada e você não puder alterar isso. Por exemplo. Se você usar o OpenSSH, precisará de privilégios de root no servidor para editar o arquivo sshd_config
e adicionar PubkeyAuthentication yes
.
EDIT: Isto é o que finalmente funcionou para mim:
sshpass -p 'sshpassword' rsync --progress -avz -e ssh test@remhost:~/something/ ~/bak/
Por favor, note que este método não é considerado seguro, pois envia a senha em texto simples e é vulnerável a ataques man-in-the-middle. É aconselhável usar a chave de autenticação para uma segurança mais strong.