ubuntuusers.de

Mit pgAdmin III und SSH auf PostgreSQL zugreifen

Status: Gelöst | Ubuntu-Version: Ubuntu 16.04 (Xenial Xerus)
Antworten |

Lunar_Sea

Anmeldungsdatum:
8. Februar 2014

Beiträge: 109

Hallo,

ich habe derzeit Ubuntu 16.04 installiert und kann mittels 'ssh pi@10.0.0.6' auf meinen Raspberry Pi zugreifen. Danach kann ich mit 'psql -U postgres -h 127.0.0.1' oder 'psql -U postgres -h localhost' auf PostgreSQL zugreifen. Was leider derzeit noch nicht funktioniert ist der Zugriff von meinem Ubuntu Rechner über pgAdmin III. Unter 'Host' habe ich '127.0.0.1' und unter Port '5432' angeben. Benutzername, 'Maintenance DB' (jeweils 'postgres') und das Passwort sind ausgefüllt. Unter 'SSH Tunnel' habe ich 'Tunnel host' (10.0.0.6), 'Tunnel port' (22) und 'Username' (pi) ausgefüllt. Auch das Passwort ist gesetzt. Allerdings erhalte ich bei der Anmeldung folgenden Fehler:

Error: SSH error: Error when starting up SSH session with error code -8 [Unable to exchange encryption keys]

Weiß jemand wo der Fehler liegt? Raspberry Pi? Am Ubuntu Rechner? Möglicherweise eine Einstellung am Router?

encbladexp Team-Icon

Ehemaliger
Avatar von encbladexp

Anmeldungsdatum:
16. Februar 2007

Beiträge: 17524

Warum möchtest du, innerhalb deines internen Netzes, per SSH Tunnel auf den PostgreSQL Zugreifen?

mfg Stefan

Lunar_Sea

(Themenstarter)

Anmeldungsdatum:
8. Februar 2014

Beiträge: 109

Ich dachte (gestern noch), dass muss so sein. Ohne SSH Option bekomme ich folgende Fehlermeldung in pdAdmin:

Error: Error connecting to the server: FATAL: password authentication failed for user "postgres" FATAL: password authentication failed for user "postgres"

Das Passwort ist allerdings korrekt. Bin ich im Terminal über SSH mit das Raspberry verbunden funktioniert es in Zusammenhang mit der Eingabe 'psql -U postgres -h 127.0.0.1' ohne Probleme.

Into_the_Pit Team-Icon

Ehemalige
Avatar von Into_the_Pit

Anmeldungsdatum:
25. Juni 2008

Beiträge: 9490

Wohnort: Bochum

Wie sieht denn Deine pg_hba.conf aus?

encbladexp Team-Icon

Ehemaliger
Avatar von encbladexp

Anmeldungsdatum:
16. Februar 2007

Beiträge: 17524

Um es kurz zu machen:

  1. PostgreSQL lauscht im Standard nur auf 127.0.0.1 bzw. ::1, nicht aber auf anderen Netzwerkschnittstellen.

  2. Du musst PostgreSQL, wie Into_the_Pit quasi schon erwähnt hat, mitteilen welche Einstellungen für die Anmeldung von extern zu verwenden sind.

mfg Stefan

Lunar_Sea

(Themenstarter)

Anmeldungsdatum:
8. Februar 2014

Beiträge: 109

Into_the_Pit schrieb:

Wie sieht denn Deine pg_hba.conf aus?

# Database administrative login by Unix domain socket
local   all             postgres                                peer

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     peer
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local   replication     postgres                                peer
#host    replication     postgres        127.0.0.1/32            md5
#host    replication     postgres        ::1/128                 md5

Bearbeitet von encbladexp:

Codeblock eingefügt

Into_the_Pit Team-Icon

Ehemalige
Avatar von Into_the_Pit

Anmeldungsdatum:
25. Juni 2008

Beiträge: 9490

Wohnort: Bochum

Lunar_Sea schrieb:

# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5

Jetzt weißt Du, warum es zwar lokal aber nicht im Netzwerk funktioniert. Hier fehlen entsprechend die Einträge, damit die Verbindung aus Deinem Netz auch erlaubt wird.

Lunar_Sea

(Themenstarter)

Anmeldungsdatum:
8. Februar 2014

Beiträge: 109

Danke für die Info. Ich benötige nun erst mal einen kleinen Spaziergang an der frischen Luft und poste später den geänderten Eintrag.

Lunar_Sea

(Themenstarter)

Anmeldungsdatum:
8. Februar 2014

Beiträge: 109

Manchmal würde es schon reichen das hauseigene (ausgezeichnete) Wiki zu Ende zu lesen:

https://wiki.ubuntuusers.de/PostgreSQL/#netzwerk

In der Datei '/etc/postgresql/9.6/main/postgresql.conf' habe ich unter 'listen_addresses' den Eintrag 'localhost' durch '*' ersetzt. Danach muss noch (wie beschrieben) die Datei '/etc/postgresql/9.6/main/pg_hba.conf' angepasst werden:

# unter 'IPv4 local connections'
host    all             all             127.0.0.1/32            md5
# ändern in
host    all             all             10.0.0.0/24             md5

Zum Schluss habe ich PostgreSQL noch neu gestartet:

sudo /etc/init.d/postgresql restart

Anders als in meinem Eingangspost muss in pgAdmin unter 'Host' die IP '10.0.0.6' angegeben werden. Was es mit '127.0.0.1' auf sich hat, habe ich leider noch nicht verstanden.

encbladexp Team-Icon

Ehemaliger
Avatar von encbladexp

Anmeldungsdatum:
16. Februar 2007

Beiträge: 17524

127.0.0.1 und ::1 sind die internen Addressen (Loopback) diese jeder Rechner hat. Damit erreichst du das jeweils eigene System.

mfg Stefan

Antworten |