Hallo, ich habe auf meinen Raspberry Pi vor kurzem Postgresql frisch installiert. Nun kann ich mich über das lokale Netzwerk sowohl mit pgAdmin als auch mit ‘psql -U postgres -h 10.0.0.2’ ohne Passwort einloggen. Nachfolgend die Ausgabe für ‘sudo grep “^[^#]” /etc/postgresql/9.6/main/pg_hba.conf’:
local all postgres peer
local all all peer
host all all 10.0.0.0/24 md5
host all all ::1/128 md5
Direkt am Pi (mit SSH) benötige ich jedoch ein Passwort für ‘psql -U postgres -h localhost’. Nun bin ich verwirrt.
ich bin mir leider nicht sicher, ob ich die Frage richtig verstanden habe. Auf dem Raspberry (Raspian) gibt es den Standardnutzer ‘Pi’, für welchen ich das Passwort nach der Installation geändert habe. Die PostgreSQL Datenbank am Raspberry soll später für die Nextcloud dienen. Auf meinem Client Rechner im Netzwerk läuft Ubuntu. Den Nutzer habe ich bei der Installation von Ubuntu erstellt. Der Zugriff auf den Raspberry erfolgt mittels SSH (ssh pi@10.0.0.2) bzw. mit pgAdmin. Ebenfalls läuft bereits auf meinen Ubuntu Rechner PostgreSQL (für QGIS). Auf beiden PostgrSQL Installationen gibt es den Nutzer postgres (mit unterschiedlichen Passworten).
die erste Zeile deiner pg_hba.conf bewirkt, daß sich der System-User ‘postgres’ als DB-User ‘postgres’ direkt anmelden darf (via Unix-Socket). Die zweite bewirkt, daß sich andere Systemuser anmelden können, ohne Passwort. Ich bin mir jetzt grad nicht sicher, ob bzw. wie ‘peer’ funktioniert, wenn man via SSH angemeldet ist. Ich meide eigentlich ‘peer’ und ‘ident’, soweit es geht.
Die Einstellung ‘peer’ war der Default Wert, ich habe diese nun jeweils auf ‘md5’ geändert und PostgreSQL neu gestartet.
Terminaleingabe unter Ubuntu:
BENUTZER@UBUNTU:~$ psql -U postgres -h 10.0.0.2
psql (9.6.5, Server 9.6.6)
SSL-Verbindung (Protokoll: TLSv1.2, Verschlüsselungsmethode: ECDHE-RSA-AES256-GCM-SHA384, Bits: 256, Komprimierung: aus)
Geben Sie »help« für Hilfe ein.
postgres=#
Terminaleingabe unter Ubuntu nach Herstellung einer SSH Verbindung zum Raspberry (ssh pi@10.0.0.2)
pi@raspberrypi:~ $ psql -U postgres -h localhost
Password for user postgres:
psql (9.6.6)
SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256, compression: off)
Type "help" for help.
postgres=#
pi@raspberrypi:~ $ psql -U postgres -h 127.0.0.1
psql: FATAL: no pg_hba.conf entry for host "127.0.0.1", user "postgres", database "postgres", SSL on
FATAL: no pg_hba.conf entry for host "127.0.0.1", user "postgres", database "postgres", SSL off
Das war wohl die ‘Store password’ Funktion von pgAdmin. Der Eintrag wird jedoch nicht gelöscht, wenn man in pgAdmin die Verbindung zum Server entfernt. Erstellt man die Verbindung erneut, benötigt man somit kein Passwort mehr.