The "passphrase for key" is likely coming from SSH not
sudo, which is asking for the passphrase to unlock your private SSH key.
Since I really won't recommend you use a key without a passphrase, consider the circumstances under which the script is run as root. Is the script always run as root sometime after you log in? Are you okay with entering your passphrase once sometime after you log in?
If this is the case, I'd recommend using something like
keychain to make sure that the ssh-agent started as your user is used by the script while it's being run as root. You can set this up so that you only have to enter the passphrase once sometime after logging in, and any future invocations require no interaction.
If this is not the case, if the script must be run autonomously without any interactive authentication from you, consider generating a keypair specifically for the backup script, and then restricting what it can do, either by having it authenticate as another user on the remote end (i.e. not
fabio, but, for example,
fabio-backup), or restricting it with the
command= argument in your
.authorized_keys file on the remote end (though this is a bit more complicated, as it requires looking at the
SSH_ORIGINAL_COMMAND environment variable; see authorized_keys(5) for details)