Rsync Paswordless sobre SSH sem autenticação de chave [Un-Safe]

11

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.

    
por Sorin-Mihai Oprea 05.01.2012 / 12:16

3 respostas

24

talvez tente sshpass .

parece bastante simples de usar ... está disponível também no apt.

Eu estava procurando por algo assim antes de copiar as minhas chaves, mas como eu já tenho a minha chave em todos os lugares de que preciso, não aproveitei para tentar isso.

Observe, no entanto, o aviso sobre o tutorial sobre a visibilidade da sua senha.

Para todos que precisam fazer isso:

sshpass -p 'sshpassword' rsync --progress -avz -e ssh test@remhost:~/something/ ~/bak/
    
por Migs 05.01.2012 / 13:08
5

Uma variação na sua solução, mais segura para ameaças de segurança, é armazenar sua senha em um arquivo com permissões restritas e usar o sinal -f com shpass :

sshpass -f '/home/me/.password' rsync --progress -avz -e ssh
test@remhost:~/something/ ~/bak/

A diferença é que listar os processos em execução não mostrará sua senha na linha de comando, ela mostrará apenas o caminho para o arquivo no qual sua senha está.

    
por Andrew Allaire 23.04.2014 / 02:25
1

Não consigo imaginar nenhuma situação em que a autenticação de chave pública sem frase-senha não seria a melhor solução para logins ssh / rsync autografados.

De qualquer forma, expect deve ser uma maneira de alcançar o que você deseja fazer. Você não pode canalizar a senha para o ssh, mas isso é algo muito semelhante. Como fazer isso, é respondido aqui em stackoverflow .

    
por lumbric 05.01.2012 / 13:14

Tags