I run the same drupal site on a local server (i.e. my mac with mamp) and on a remote server (i.e. my hosting provider). I want to keep the two sites synchronized. My hosting provider does not allow ssh keys. I have already tried the drush aliases way, but with no success at all - I keep getting the message "no alias record could be found for source @.... So please, my question is this: What is the best and easiest way to keep the two versions (local and remote) of the same site synchronized?
For your case (no SSH, no drush, no Git) I would suggest the following methods
Configuration Management module.
The configuration management module enables the ability to keep track of specific configurations on a Drupal site, provides the ability to move these configurations between different environments (local, dev, qa, prod), and also move configurations between completely different sites (migrate configurations) without the use of modules with all configuration being owned by the site.
Backup and Migrate module.
Back up and restore your Drupal MySQL database, code, and files or migrate a site between environments. Backup and Migrate supports gzip, bzip and zip compression as well as automatic scheduled backups.
"Configuration Management" module is useful when you are testing and altering node types, fields, views etc. and you just want to send you final changes to production (and the reverse).
With the "Backup and Migrare" module you can backup-restore (and schedule that) the whole or parts of the database and files. You can also utilize the excellent free service NodeSquirrel. You create the backup profiles according to your needs, save to NodeSquirrel, just restore from NodeSquirrel on your local server (and the reverse).
Beware: restoring a database with "Backup and Migrate" does not clean or drop the previous database tables issue
In case you are codding custom modules and themes OR you are updating core / modules AND you want an easier way to upload only the updated / changed files: I would suggest the Beyond Compare software. It does a excellent and fast compare / diff job with local - remote FTP folders. 
I am not in any way affiliated with the company. You can also try other comparing tools.
- You can also try the stage file proxy module suggested by @Saphyel
-  Since you are using a Mac, you can also try the free software Cyberduck or FileZilla which both have "compare folder" capabilities. They are not the same as a dedicated compare/diff tool but they are free to use and they may be good enough for what you need.
For executing drush commands on others server you should have access via SSH, and you only have access via FTP. Your best option I think is doing every day on production a backup and download it and then in your local machine: drush sql-cli < db.sql or mysql db < db.sql
Maybe you can use the module stage_file_proxy so you don't have to copy files
I have same situation I use
module Webservice and view Data Export or Feeds at local Mac when i create new content offline it stock in my database local. i use CURL to detect if i have connection internet to server web if my connection is ready my cron will post new content from local to my web site via webservice REST. when i create new content from my website. my local can receive via RSS or view data export