PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

PostgreSQL über SSH-Tunnel

Ihre pg_hba.conf scheint Verbindungen von localhost zuzulassen. Der einfachste Weg, Ihre SSH-Tunnelverbindungen von localhost erscheinen zu lassen, besteht darin, sie zu zu machen lokaler Host.

Der folgende SSH-Befehl stellt eine Verbindung zu remote.example.com als Benutzer „user“ her und veranlasst Ihren SSH-Client, auf localhost, Port 1111/tcp, zu lauschen. Alle Verbindungen zu diesem Port werden über den SSH-Tunnel weitergeleitet, und auf der Seite des SSH-Servers werden die Verbindungen zu localhost, Port 5432/tcp, hergestellt. Da wir uns mit localhost verbinden, scheinen die Verbindungen auch von localhost zu stammen und sollten mit Ihrer bestehenden pg_hba.conf-Zeile übereinstimmen.

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

Wenn erwartet wird, dass dies ein langlaufender Tunnel ist, würde ich die Verwendung von autossh empfehlen

Um eine Verbindung mit dem psql-Client auf dem Host herzustellen, auf dem Sie den ssh-Client ausführen, verwenden Sie etwa Folgendes:

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

Sie sollten dann nach dem Kennwort Ihres Datenbankbenutzers gefragt werden.

Alternativ können Sie einer Datei mit dem Namen .pgpass die folgende Zeile hinzufügen in Ihrem Home-Verzeichnis auf dem Client, auf dem Sie psql ausführen:

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