DBeaverを使用して、SSH経由でPostgreSQLデータベースサーバーに接続しようとしています。
can't initialize tunnel
cannot establish tunnel
com.jcraft.jsch.JSchException: auth fail
SSHサーバーは正常に動作していると思います。 pgAdmin 3とRazorSQLを使用して、同じSSHサーバーを介して同じPostgreSQLデータベースサーバーに接続しました。 IP、ユーザー名、パスワードを確認しましたが、正しいです。すべてのファイアウォールを無効にしました。問題は何でしょうか?
私の設定:
私はWindows 7 SP1 x64 UltimateでDBeaver 3.7.3 x64ポータブルバージョンを使用しています。
エラーログウィンドウはエラーを記録しないので、そこにはそれ以上の情報はありません。
KubuntuでDBweaverを試しましたが、同じ問題が発生しました。問題は、SSHサーバーの信頼性が事前に検証されておらず、DBweaverで正しいエラーメッセージをカスケードできないという事実に関係しているようです(例:Host key verification failed.
)そして、誤解を招くようにいくつかの認証エラーを非難します。
Kubuntuでこの問題を次のように修正しました。
シェルで実行Sudo apt-get install -y autossh
DBeaverの接続にシェルコマンドを追加します。
autossh -f -N -L 5432:localhost:5432 ssh_server_username@ssh_server_ip
その時点で接続しようとすると、同じcom.jcraft.jsch.JSchException: auth fail
エラーメッセージ。シェルに移動して、次のコマンドを実行します。
ssh -f -N -L 5432:localhost:5432 ssh_server_username@ssh_server_ip
それは出力します:
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:
DBeaverに戻り、接続を試みます。これでうまくいくはずです。しかし、なぜDBeaverのSSHトンネルタブの代わりにautossh
を使用する必要があるのかまだわかりません。