Ich weiß, das ist Frage ist Jahre alt, aber ich lief in das gleiche Problem heute und habe eine Lösung, die trust
in einer begrenzten, aber nützliche Weise verwendet.
Wie in vielen Entwicklungsläden, wenn die Entwickler ein QA postgres Passwort brauchen, schreien sie es einfach, senden es, mailen es, schreiben es auf ihre Stirn, etc. Und ich bin wie, "Das ist wirklich schlimm. Ich muss einen Weg finden, PKI hier zu verwenden. " Wir verwenden auch pgAdmin3.
Zuerst eine Zeile wie diese zu Ihrem pg_hba.conf hinzufügen, wo dev
den Benutzer für die Entwickler in Ihrem Shop steht: auf der
host all dev 127.0.0.1/32 trust
Tropfen der Entwickler öffentlichen Schlüssel in ihren authorized_keys
Ordner Datenbankserver. Jetzt haben sie ssh in den Server mit dem -L
Flagge mit einem Befehl ähnlich dem folgenden:
ssh -i ~/.ssh/id_rsa -L5432:127.0.0.1:5432 -vvv 101.102.103.104
Dies ermöglicht es, die Postgres-Port zu verwenden, als ob es localhost wurden. Natürlich, ersetzen Sie den Schlüssel, Server und stellen Sie sicher, dass zu einem offenen Port lokal zugeordnet werden (wenn Sie eine lokale Postgres ausgeführt wird, ist es wahrscheinlich an 5432 gebunden). Ich benutze eine ziemlich ausführliche Flagge, damit ich problemlos alle SSH-Probleme beheben kann.
Öffnen Sie ein weiteres Terminal und geben Sie diesen Befehl ein:
psql -h 127.0.0.1 -U dev -p 5432
Sie Zugriff auf die Datenbank haben sollte und nie nach einem Passwort gefragt werden, was ich denke, ist groß, denn sonst werden die Devs nur der Verzicht auf Passwort mit wenig Rücksicht auf die Sicherheit, vorbei wie Halloween Süßigkeiten.
Ab sofort fordert PgAdmin3 Sie immer noch zur Eingabe eines Passworts auf, auch wenn es - ganz normal - nicht gebraucht wird. Aber andere Postgres-GUIs werden nicht. Versuchen Sie es mit Postico. Es ist in der Beta, funktioniert aber großartig.
Ich hoffe, diese Antwort hilft jedem wie mir, die lieber PKI für postgres auth verwenden würde, anstatt Passwörter willy-nilly.
Haben Sie versucht * das angeforderte Passwort * zu liefern? –
Mein Passwort ist leer, also habe ich gerade eingegeben, als die Anfrage kam. – DarkCoffee
Können Sie versuchen, von der Kommandozeile aus zu verbinden? '$ psql -U -h ' Sie können die -h weglassen, wenn Sie mit Unix-Domain-Sockets verbinden möchten. –
Eelke