I need to send files from a group of servers to a remote server. My plan was to use rsync over SSH as it meets my requirement of a secure connection and the ability to delete from source upon successful transfer. I can also restrict the firewall to only allow IP's that I trust on port 22.
If I setup a cron job to transfer these files using rsync over SSH, I'm assuming I would need to setup SSH keys to communicate. However, what is the security risk of storing public keys on a bunch of servers? Is it better to create individual keys per server? This account will only be used to transfer files.
Editing to expand on my network.
I have multiple servers hosted by 3rd party hosting company that all have public IP's. My home network has a static IP and servers sit behind a NAT'd router. So I'm not sure how I can pull data on the central server from the devices behind the NAT.
I could create a central server behind the NAT that collects everything and open up a port forward out. With a firewall that restricts port 22 and the static IP of the database server, I guess that would handle any possible security breaches.