DBeaver: Verbindung zu einem PostgreSQL-Datenbankserver über SSH: Tunnel kann nicht initialisiert werden, Authentifizierung fehlgeschlagen

8

Ich versuche, DBeaver zu verwenden, um über SSH eine Verbindung zu einem PostgreSQL-Datenbankserver herzustellen:

can't initialize tunnel
cannot establish tunnel
com.jcraft.jsch.JSchException: auth fail

Geben Sie hier die Bildbeschreibung ein

Ich bin sicher, dass der SSH-Server einwandfrei funktioniert. Ich schaffe es, über denselben SSH-Server mit pgAdmin 3 und RazorSQL eine Verbindung zu demselben PostgreSQL-Datenbankserver herzustellen. Ich habe die IP, den Benutzernamen und das Passwort überprüft, sie sind korrekt. Ich habe alle Firewalls deaktiviert. Was könnte das Problem sein?

Meine Einstellungen:

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein

Ich verwende die tragbare Version DBeaver 3.7.3 x64 mit Windows 7 SP1 x64 Ultimate.

Das Fehlerprotokollfenster protokolliert den Fehler nicht, daher habe ich dort keine weiteren Informationen.

Franck Dernoncourt
quelle

Antworten:

4

Ich habe DBweaver auf Kubuntu ausprobiert und hatte das gleiche Problem. Es sieht so aus, als ob das Problem in der Tatsache liegt, dass die Authentizität des SSH-Servers nicht zuvor überprüft wurde und DBweaver nicht in der Lage ist, die richtige Fehlermeldung (z. B. Host key verification failed.) zu kaskadieren, und stattdessen irreführend einen Authentifizierungsfehler beschuldigt.

Ich habe das Problem bei Kubuntu wie folgt behoben:

  1. Deaktivieren Sie den SSH-Tunnel:

Geben Sie hier die Bildbeschreibung ein

  1. Laufen Sie in der Shell sudo apt-get install -y autossh

  2. Fügen Sie den Shell-Befehl in Ihrer Verbindung in DBeaver hinzu:

    autossh -f -N -L 5432:localhost:5432 ssh_server_username@ssh_server_ip

Geben Sie hier die Bildbeschreibung ein

  1. Wenn Sie zu diesem Zeitpunkt versuchen, eine Verbindung herzustellen, wird dieselbe com.jcraft.jsch.JSchException: auth failFehlermeldung angezeigt. Gehen Sie zur Shell und führen Sie den folgenden Befehl aus:

    ssh -f -N -L 5432:localhost:5432 ssh_server_username@ssh_server_ip

    es wird ausgegeben:

    The authenticity of host 'ssh_server_hostname (ssh_server_ip)' can't be established.
    ECDSA key fingerprint is 29:13:b5:cb:99:21:b2:18:f1:11:aa:12:54:c2:88:9a.
    Are you sure you want to continue connecting (yes/no)? yes
    Warning: Permanently added 'ssh_server_hostname,ssh_server_ip' (ECDSA) to the list of known hosts.
    Password: 

    Gehen Sie zurück zu DBeaver und versuchen Sie, eine Verbindung herzustellen. Das sollte funktionieren. Ich weiß immer noch nicht, warum ich autosshin DBeaver anstelle der Registerkarte SSH-Tunnel verwenden soll.

Franck Dernoncourt
quelle
Haben Sie das gleiche Problem unter Windows, konnten es nicht beheben.
Henrique de Sousa
FWIW, es scheint mir, dass die Lösung des Problems "Die Authentizität des Hosts 'ssh_server_hostname (ssh_server_ip)' kann nicht festgestellt werden." ist der einzige wichtige Teil. Franck impliziert, dass es keinen Grund gibt, etwas zu brauchen, autosshsondern einfach ssh. Ich habe die Erfahrung gemacht, dass dies ssheinwandfrei funktioniert, wenn der Server zur Liste der bekannten Hosts hinzugefügt wird.
Mdahlman