If you only have access to the database with username and password, I would create a simple script that drops the current local database and repopulate it from the freshly recovered database dump.
The script would look like this
#!/bin/bash
REMOTE_PSQL_OPTIONS="-h <remote_host> -p <remote_port> -U <remote_user>"
LOCAL_PSQL_OPTIONS="-h localhost -p <local_port> -U <local_user>"
# retrieve the database locally
echo "Remote database fetch"
pg_dump $REMOTE_PSQL_OPTIONS <remote_db_name> > /tmp/my_db.sql
# install locally
echo "Local install in temporary database"
psql $LOCAL_PSQL_OPTIONS postgres "CREATE DATABASE my_tmp_db"
psql $LOCAL_PSQL_OPTIONS my_tmp_db -f /tmp/my_db.sql
# switch databases
echo "Installing the new database version"
psql $LOCAL_PSQL_OPTIONS postgres
# backup the current local db
psql $LOCAL_PSQL_OPTIONS postgres "ALTER DATABASE current_db_name RENAME TO current_db_name_backup;"
# rename the tmp db to the expected local database name
psql $LOCAL_PSQL_OPTIONS postgres "ALTER DATABASE my_tmp_db RENAME TO current_db_name;"
# if you trust this script, uncomment this line that clean old backups
# psql $LOCAL_PSQL_OPTIONS postgres "DROP DATABASE current_db_name_backup;"
Hope that helps.
If you could had any ssh access, you could gzip the sql dump before transfert but for now this is your only choice.
FATAL: no pg_hba.conf entry for replication connection from host. However I really need only read-only access. So I thought there would be some other way around.