PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

PostgreSQL tramite tunnel SSH

Il tuo pg_hba.conf sembra consentire le connessioni da localhost. Il modo più semplice per far apparire le connessioni del tuo tunnel SSH da localhost è renderle a host locale.

Il seguente comando SSH si connette a remote.example.com come utente "utente" e fa sì che il client ssh sia in ascolto su localhost, porta 1111/tcp. Qualsiasi connessione effettuata a quella porta verrà inoltrata tramite il tunnel ssh e sul lato server ssh le connessioni verranno effettuate a localhost, porta 5432/tcp. Dato che ci stiamo connettendo a localhost, le connessioni sembreranno provenire anche da localhost e dovrebbero corrispondere alla tua linea pg_hba.conf esistente.

ssh -L 1111:localhost:5432 [email protected]

Se si prevede che questo sia un tunnel di lunga durata, consiglierei di utilizzare autossh

Per connetterti usando il client psql sull'host su cui stai eseguendo il client ssh, usa qualcosa del genere:

psql -h localhost -p 1111 -U your-db-username database-name

Ti dovrebbe quindi essere richiesta la password dell'utente del database.

In alternativa, puoi aggiungere una riga come segue a un file chiamato .pgpass nella tua home directory sul client su cui stai eseguendo psql:

localhost:1111:database-name:your-db-user:your-db-password