rsync como otro usuario

rsync como otro usuario

cuando ejecuto el comando follow como usuario normal, todo funciona correctamente:

fabio@myclient:~$ rsync -rv myserver:~/backup /home/fabio/backup/

Funciona sin ninguna interacción del usuario, pero necesito ejecutar un script ejecutado como root, así que intenté:

root@myclient:~# sudo -u fabio rsync -rv myserver:~/backup /home/fabio/backup/

y también probé:

root@myclient:~# su - fabio -c "rsync -rv myserver:~/backup /home/fabio/backup"

Ambos funcionan pero me piden una "frase de contraseña para la clave", ¿puedo evitarlo?

Respuesta1

Es probable que la "frase de contraseña para la clave" provenga de SSH not rsynco sudo, que solicita la frase de contraseña para desbloquear su clave SSH privada.

Dado que realmente no recomendaré que uses una clave sin una frase de contraseña, considera las circunstancias bajo las cuales el script se ejecuta como root. ¿El script siempre se ejecuta como root en algún momento después de iniciar sesión? ¿Está de acuerdo con ingresar su contraseña una vez después de iniciar sesión?

Si este es el caso, recomendaría usar algo comokeychainpara asegurarse de que el script utilice el agente ssh iniciado como su usuario mientras se ejecuta como root. Puede configurar esto para que solo tenga que ingresar la frase de contraseña una vez después de iniciar sesión, y cualquier invocación futura no requiera interacción.

Si este no es el caso, si el script debe ejecutarse de forma autónoma sin ninguna autenticación interactiva por su parte, considere generar un par de claves específicamente para el script de respaldo y luego restringir lo que puede hacer, ya sea autenticándolo como otro usuario en el control remoto. end (es decir, no fabio, pero, por ejemplo fabio-backup), o restringirlo con el command=argumento en su .authorized_keysarchivo en el extremo remoto (aunque esto es un poco más complicado, ya que requiere mirar la SSH_ORIGINAL_COMMANDvariable de entorno; consulteclaves_autorizadas(5)para detalles)

Respuesta2

Su clave privada ssh está protegida por una frase de contraseña. Cuando lo ejecuta manualmente como usuario (que ha iniciado sesión), utiliza el agente ssh donde almacenó el almacén de claves de contraseña alguna vez.

Sin embargo, cuando se ejecuta sin supervisión, esto no sucede; después de todo, es posible que el usuario ni siquiera haya iniciado sesión (y, por lo tanto, su almacén de claves no esté disponible). Para que funcione siempre, debe eliminar la frase de contraseña de su clave privada ssh (a través de ssh-keygen -pcuando inicie sesión como usuario fabio; simplemente presione Intro para obtener una nueva frase de contraseña y debería eliminarse).

Nota de seguridad menor: cuando la clave privada no está protegida por una frase de contraseña, cualquiera que obtenga acceso a fabiola cuenta también podrá enviarla por ssh a otros hosts que permitan esa clave, sin necesidad de detectar primero la frase de contraseña del usuario).

información relacionada