unix - servidores - rsync incremental
¿Cómo se usa un archivo de identidad con rsync? (6)
¿Cómo se usa un archivo de identidad con rsync?
Esta es la sintaxis que creo que debería usar con rsync para usar un archivo de identidad para conectar:
rsync -avz -e ''ssh -p1234 -i ~/.ssh/1234-identity'' / "/local/dir/" [email protected]:"/remote/dir/"
Pero me está dando un error:
Warning: Identity file ~/.ssh/1234-identity not accessible: No such file or directory.
El archivo está bien, los permisos están configurados correctamente, funciona al hacer ssh, pero no con rsync, al menos en mi sintaxis. ¿Qué estoy haciendo mal? ¿Está tratando de buscar el archivo de identidad en la máquina remota? De ser así, ¿cómo especifico que quiero usar un archivo de identidad en mi máquina local ?
¿Estás ejecutando el comando en bash o sh? Esto podría hacer la diferencia. Intenta reemplazar ~
con $HOME
. Intente hacer una comilla doble para la opción -e
.
Debe especificar la ruta absoluta a su archivo de clave de identidad. Esto probablemente sea una especie de peculiaridad en rsync. (no puede ser perfecto después de todo)
Me encontré con este problema hace unos días :-)
Esto funciona para mí
rsync -avz --rsh="ssh -p1234 -i ~/.ssh/1234-identity" /
"/local/dir/" [email protected]:"/remote/dir/"
Use $HOME
rsync -avz -e "ssh -p1234 -i /"$HOME/.ssh/1234-identity/"" dir remoteUser@server:
o camino completo a la clave:
rsync -avz -e "ssh -p1234 -i /home/username/.ssh/1234-identity" dir user@server:
Probado con rsync 3.0.9 en Ubuntu
use el archivo de clave con rsync:
rsync -rave "ssh -i /home/test/pkey_new.pem" /var/www/test/ [email protected]:/var/www/test
Es posible que desee utilizar ssh-agent
y ssh-add
para cargar la clave en la memoria. ssh
intentará identidades de ssh-agent automáticamente si puede encontrarlas. Los comandos serían
eval $(ssh-agent) # Create agent and environment variables
ssh-add ~/.ssh/1234-identity
ssh-agent
es un daemon de usuario que contiene claves ssh sin cifrar en la memoria. ssh lo encuentra en función de las variables de entorno que ssh-agent genera cuando se ejecuta. Usar eval
para evaluar esta salida crea las variables de entorno. ssh-add
es el comando que administra la memoria de las teclas. El agente se puede bloquear usando ssh-add. Se puede especificar un tiempo de vida predeterminado para una clave cuando se inicia ssh-agent o se especifica para una clave cuando se agrega.
También es posible que desee configurar un archivo ~ / .ssh / config para proporcionar el puerto y la definición de la clave. (Ver `man ssh_config para más opciones.)
host 22.33.44.55
IdentityFile ~/.ssh/1234-identity
Port 1234
El solo hecho de citar el comando ssh evitará la expansión del shell que sea necesaria para ~
o $HOME
. Puede usar la ruta completa o relativa a la tecla en comillas simples.