SSH sin contraseña se hace generalmente con autenticación de clave pública . Normalmente, cifraría la clave privada con una contraseña, sin embargo, como desea ejecutar una secuencia de comandos de sincronización desatendida, le recomiendo crear las claves como otro usuario y ejecutar la secuencia de comandos shell como ese usuario.
En cliente:
mkdir ~/.ssh
chmod 700 ~/.ssh
ssh-keygen -q -f ~/.ssh/id_rsa -t rsa
# Press enter twice when asked for a passphrase
Dado que los Mac no tienen el ID de copia de SSH, debe hacerlo manualmente:
scp ~/.ssh/id_rsa.pub [email protected]:~
En el servidor
mkdir ~/.ssh
chmod 700 ~/.ssh
# Append or copy public key to authorized keys file:
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
rm ~/id_rsa.pub
UNA script de shell es un archivo de texto con un conjunto de permisos ejecutables que comienza con
#!/bin/sh
# you can then do any commands that you do manually, ex:
# (See levy's answer for the rsync command to use)
rsync /home/Anders/ 192.168.3.5:~/backup/location
Para ejecutar un script periódicamente puedes usar cron . Digamos que guardamos ese script en /home/Anders/bin/sync.sh. Luego correrías:
env EDITOR=nano crontab -e
como el usuario que desea ejecutar el script cron como.
En el editor de texto que aparece deberías ingresar:
#Minute Hour Day Month Year Command
0 13 * * * /home/Anders/bin/sync.sh
Lo anterior se sincronizaría todos los días en el minuto 0 de la hora 14 (comienza a contar desde cero), ajústese a sus necesidades.
Otra opción podría ser SSHFS Es decir, lo montaría y puede operar en él como un directorio normal.