Rsync sin contraseña a través de SSH sin autenticación de clave

Rsync sin contraseña a través de SSH sin autenticación de clave

Quiero configurar un trabajo RSync que se conecte a través de SSH.

Tengo mi computadora ( backup@myhost ) y el host remoto ( test@remhost ) y necesito hacer una copia de seguridad de la carpeta ~/something con todo su contenido. La prueba de usuario ssh solo tiene acceso de LECTURA a todos los archivos y carpetas en la carpeta ~/. Quiero usar rsync para copiar la carpeta test@remhost:~/something a la carpeta backup@myhost:~/bak.

Para ello utilizo el siguiente comando a través de BASH en Ubuntu 11.10 (Oneiric):

rsync -avz -e ssh test@remhost:~/something/ ~/bak/

Después de presionar enter me sale esto:

test@remhost's password:

Escribo la contraseña y el rsync funciona.

Quiero realizar el comando anterior para ingresar automáticamente la contraseña y pasarla como parámetro o ingresarla automáticamente e iniciar el trabajo.

Intenté ejecutar rsync -avz -e ssh test:password@remhost:~/something/ ~/bak/pero todavía me pide la contraseña y es molesto.

No quiero oír hablar de ningún tipo de claves (RSA, DSA o cualquier otra). Sólo quiero un comando simple que me permita iniciar sesión y hacer el trabajo.

EDITAR:Un posible escenario podría ser que la autenticación de clave pública esté deshabilitada y no pueda cambiar esto. Por ejemplo, si usa OpenSSH, necesitará privilegios de root en el servidor para poder editar el archivo sshd_configy agregar PubkeyAuthentication yes.

EDITAR:Esto es lo que finalmente funcionó para mí:

sshpass -p 'sshpassword' rsync --progress -avz -e ssh test@remhost:~/something/ ~/bak/

Tenga en cuenta que este método no se considera seguro ya que envía la contraseña en texto sin formato y es vulnerable a ataques de intermediario. Se recomienda utilizar la autenticación de claves para mayor seguridad.

Respuesta1

tal vez intente paso ssh.

Parece bastante simple de usar... también está disponible a través de apt.

Estaba buscando algo como esto antes de copiar mis claves, pero como ya tengo mi clave en todos los lugares que necesito, no me he tomado el tiempo para probar esto.

Sin embargo, tenga en cuenta el descargo de responsabilidad en ese tutorial con respecto a la visibilidad de su contraseña.


Para todos los que necesitan hacer esto:

sshpass -p 'sshpassword' rsync --progress -avz -e ssh test@remhost:~/something/ ~/bak/

Respuesta2

Una variación de su solución que es más segura frente a las amenazas de seguridad es almacenar su contraseña en un archivo con permisos estrictos y usar la -fbandera con shpass:

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

La diferencia es que enumerar los procesos en ejecución no mostrará su contraseña en la línea de comando, ahora solo mostrará la ruta al archivo en el que se encuentra su contraseña.

Respuesta3

No puedo imaginar ninguna situación en la que la autenticación de clave pública sin frase de contraseña no sea la mejor solución para los inicios de sesión automatizados ssh/rsync.

De todos modos expectdebería haber una manera de lograr lo que quieres hacer. No puedes canalizar la contraseña a ssh, pero esto es algo muy similar. Cómo hacerlo, se responde.aquí en stackoverflow.

Respuesta4

Esto también funciona:

system <<~ "RSYNC";
    rsync \\
      --rsh="sshpass -p '$password' ssh -p 22" \\
      --archive \\
      --verbose \\
      --progress \\
      --partial \\
      --human-readable \\
      "$directory" \\
      "$options{host}:${directory}"
RSYNC

es decir. Pasando sshpassen --rshlugar de delante dersync

Este método junto con el uso de la SSHPASSvariable de entorno se describe en la sección Ejemplos del manual:

https://www.freebsd.org/cgi/man.cgi?query=sshpass&sektion=1

información relacionada