title: Pandas read from remote Postgresql with SSH tunnel and sqlalchemy
body: <p>I can read from my local psql instance like this:</p>
  <pre><code>engine = create_engine('postgresql://postgres:postgres@localhost/db_name')
  df = pd.read_sql(&quot;select * from table_name;&quot;, engine)
  </code></pre>
  <p>I have a remote postgresql sever which I successfully accessed with ssh tunneling both in PgAdmin4 and pycharm. I use public key file to login into remote server. Now, my question is how do I access that database with pandas. I tried:</p>
  <pre><code>engine = create_engine('postgresql://username:password@localhost/db_name')
  </code></pre>
  <p>Here, username and password are of remote database. I get <code>sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) FATAL:  password authentication failed for user</code>. However, with the same username and password I can access the table in PgAdmin.</p>
  <p>From what I read, because of ssh tunneling I have to use <code>localhost</code> and not the remote server address, right? In pgAdmin I can see that the server is running. So, my question is how do I read the table from remote postgresql database with ssh tunneling? In examples I have seen people using different port (different than 5432) but for me the setup only works if I use port 5432. I have disconnected all other servers to avoid the port conflict but I get the same error.</p>