Pregunta cómo pasar la contraseña para el comando rsync ssh


Necesito hacer rsync por ssh y quiero hacerlo automáticamente sin necesidad de pasar la contraseña para ssh manualmente.


73
2017-07-21 13:51


origen


Respuestas:


Debe usar un archivo de claves sin frase de contraseña para los inicios de sesión ssh scripted. Esto es obviamente un riesgo de seguridad, tenga cuidado de que el archivo clave esté adecuadamente asegurado.

Instrucciones para configurar el acceso ssh sin contraseña


36
2017-07-21 13:53



Utilice la utilidad del proveedor de contraseñas sshpass "no interactivo ssh password"

En Ubuntu

 sudo apt-get install sshpass

Comando para rsync

 /usr/bin/rsync -ratlz --rsh="/usr/bin/sshpass -p password ssh -o StrictHostKeyChecking=no -l username" src_path  dest_path

68
2017-10-24 15:55



Puede evitar la solicitud de contraseña en el comando rsync configurando la variable de entorno RSYNC_PASSWORD en la contraseña que desea usar o utilizando la opción --password-file.


20
2018-01-11 20:54



Si no puede usar una clave pública / privada, puede usar expect:

#!/usr/bin/expect
spawn rsync SRC DEST
expect "password:"
send "PASS\n"
expect eof
if [catch wait] {
    puts "rsync failed"
    exit 1
}
exit 0

Deberá reemplazar SRC y DEST con los parámetros de fuente y destino rsync normales, y reemplazar PASS con su contraseña. ¡Solo asegúrese de que este archivo esté almacenado de forma segura!


10
2018-01-31 01:22



usa una clave ssh:

mirar ssh-keygen y ssh-copy-id.

Después de eso, puedes usar un rsync de esta manera:

rsync -a --stats --progress --delete /home/path server:path

4
2017-07-21 13:54



otra posibilidad interesante: 1. generar par de claves RSA o DSA (como se describió) 2. poner la clave pública al host (como ya se describió) 3. ejecutar:

rsync --partial --progress --rsh="ssh -i dsa_private_file" host_name@host:/home/me/d .

Nota: -i dsa_private_file cual es tu clave privada RSA / DSA

Básicamente, este enfoque es muy similar al descrito por @Mad Scientist, sin embargo, no tiene que copiar su clave privada a ~ / .ssh. En otras palabras, es útil para tareas ad-hoc (acceso de una sola vez sin contraseña)


4
2018-06-24 21:04



Aunque ya lo hayas implementado,

también puedes usar cualquier esperar implementación (encontrará alternativas en Perl, Python: pexpect, paramiko, etc.)


2
2018-01-12 16:36



Automáticamente ingrese la contraseña para el comando rsync es difícil. Mi solución simple para evitar el problema es montar la carpeta de la que se realizará la copia de seguridad. Luego use un comando rsync local para hacer una copia de seguridad de la carpeta montada.

mount -t cifs //server/source/ /mnt/source-tmp -o username=Username,password=password
rsync -a /mnt/source-tmp /media/destination/
umount /mnt/source-tmp

2
2018-03-29 19:56



Utilizo un archivo VBScript para hacer esto en la plataforma Windows, me sirve muy bien.

set shell = CreateObject("WScript.Shell")
shell.run"rsync -a Name@192.168.1.100:/Users/Name/Projects/test ."
WScript.Sleep 100
shell.SendKeys"Your_Password"
shell.SendKeys "{ENTER}"

2
2017-11-23 18:55