Când încerc să mă conectez la un server mysql la distanță printr-un tunel ssh folosind datagrip pe Windows 10 ca client, primesc „SSH Tunnel Creation failed: open failed”.
Sunt capabil să stabilesc și să mă conectez la tunel cu succes cu: ssh username@mysqlServer -L 22:remoteHost:3306
.
Folosesc datagrip ca demonstrație principală a problemei, deoarece oferă câteva informații de depanare atunci când testez conexiunea, dar am încercat dbeaver și tableplus, ambele nu s-au conectat.
Alți utilizatori din organizația mea se pot conecta la serverul mysql la distanță foarte bine pe mașinile macos.
Jurnalele din datagrip:
2022-04-18 14:58:14,313 [ 57564] INFO - n.s.s.t.r.JCERandom - Crearea unui nou SecureRandom.
2022-04-18 14:58:14,411 [ 57662] INFO - #c.i.s.i.s.sshj - Șir de identitate client: SSH-2.0-IntelliJ__DataGrip_DB-221.5080.224__SSHJ_0.222.04_idea
2022-04-18 14:58:14,508 [ 57759] INFO - #c.i.s.i.s.sshj - Șir de identitate server: SSH-2.0-OpenSSH_7.2p2 Ubuntu-4ubuntu2.8
2022-04-18 14:58:15,258 [ 58509] INFO - #c.i.s.i.s.sshj - Jurnal de autentificare: conexiune SSH la username@mysqlServer:22
* Cu setări de conexiune modificate:
- authMethods: PublicKey(privateKeys=[C:\Users\spenc\.ssh\id_rsa, C:\Users\spenc\.ssh\id_dsa, C:\Users\spenc\.ssh\id_ecdsa, C:\Users\spenc \.ssh\id_ed25519, C:\Users\spenc\.ssh\id_xmss], agent=NU), Parolă, KeyboardInteractive
- utilizator: nume de utilizator
* Conectat: Socket[addr=mysqlServer/mysqlServer,port=22,localport=63766]
* Începe autentificarea
=> niciunul (eșec, noi metode de autentificare permise de server: cheie publică)
=> cheie publică C:\Utilizatori\spenc\.ssh\id_rsa (succes)
2022-04-18 14:58:15,270 [ 58521] INFO - #c.i.d.d.DatabaseSshTunnelEstablisher - Tunel SSH creat: 63768:remoteHost:3306
2022-04-18 14:58:15,317 [ 58568] INFO - #c.i.e.r.RemoteProcessSupport - "C:\Program Files\JetBrains\DataGrip 2022.1.1\jbr\bin\java" -Djava.0rmi=.27r.0hostname=. 0.1 -Duser.timezone=UTC -Xmx750m -Xms128m -Dfile.encoding=UTF-8 -classpath „C:\Program Files\JetBrains\DataGrip 2022.1.1\lib\util_rt.jar;C:\Program Files\JetBrains\DataGrip 2022.1.1\lib\util.jar;C:\Program Files\JetBrains\DataGrip 2022.1.1\lib\groovy.jar;C:\Program Files\JetBrains\DataGrip 2022.1.1\plugins\DatabaseTools\lib\jd console.jar;C:\Utilizatori\spenc\AppData\Roaming\JetBrains\DataGrip2022.1\jdbc-drivers\MySQL ConnectorJ\8.0.25\mysql-connector-java-8.0.25.jar" com.intellij.database. remote.RemoteJdbcServer com.mysql.cj.jdbc.Driver
2022-04-18 14:58:15,705 [ 58956] INFO - #c.i.e.r.RemoteProcessSupport - Port/ServicesPort/ID: 58696/63770/RemoteDriverImpld6de775c
2022-04-18 14:58:15,713 [ 58964] INFO - #c.i.e.r.RemoteProcessSupport -
2022-04-18 14:58:15,772 [ 59023] INFO - #c.i.d.d.DatabaseConnectionEstablisher - Conectare la: jdbc:mysql://remoteHost:3306/dbName
2022-04-18 14:58:15,774 [ 59025] INFO - #c.i.d.d.DatabaseConnectionEstablisher - Furnizor de autentificare: user-pass
2022-04-18 14:58:15,776 [ 59027] INFO - #c.i.d.d.DatabaseCredentialsAuthProvider - Conectare ca: nume de utilizator
2022-04-18 14:58:15,778 [ 59029] INFO - #c.i.d.d.DatabaseConnectionEstablisher - Conectare la (rescris): jdbc:mysql://localhost:63768/dbName
2022-04-18 14:58:15,987 [ 59238] WARN - #c.i.s.i.s.sshj - <<chan#0 / open>> m-am trezit la: Deschiderea canalului `direct-tcpip` a eșuat: deschiderea a eșuat
2022-04-18 14:58:15,989 [ 59240] INFO - #c.i.s.i.s.sshj - Eroare în tunelul local SSHJ pentru SshjSshConnection(nume utilizator@mysqlServer)@82260ee: Local client /127:>370 local server local =127:63. 63768 ==> Server la distanță remoteHost:3306`: net.schmizz.sshj.connection.channel.OpenFailException: deschidere eșuată
2022-04-18 14:58:16,016 [ 59267] WARN - #c.i.d.d.BaseDatabaseErrorHandler$IOErrorInfo - Nu se poate citi răspunsul de la server. Se așteaptă să citească 4 octeți, să citească 0 octeți înainte ca conexiunea să se piardă în mod neașteptat.
java.io.EOFException: Nu se poate citi răspunsul de la server. Se așteaptă să citească 4 octeți, să citească 0 octeți înainte ca conexiunea să se piardă în mod neașteptat.
la com.mysql.cj.protocol.FullReadInputStream.readFully(FullReadInputStream.java:67)
la com.mysql.cj.protocol.a.SimplePacketReader.readHeader(SimplePacketReader.java:63)
la com.mysql.cj.protocol.a.SimplePacketReader.readHeader(SimplePacketReader.java:45)
la com.mysql.cj.protocol.a.NativeProtocol.readMessage(NativeProtocol.java:540)
la com.mysql.cj.protocol.a.NativeProtocol.readServerCapabilities(NativeProtocol.java:498)
la com.mysql.cj.protocol.a.NativeProtocol.beforeHandshake(NativeProtocol.java:385)
la com.mysql.cj.protocol.a.NativeProtocol.connect(NativeProtocol.java:1351)
la com.mysql.cj.NativeSession.connect(NativeSession.java:157)
la com.mysql.cj.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:953)
la com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:823)
la com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:453)
la com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:246)
la com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:198)
la com.intellij.database.remote.jdbc.helpers.JdbcHelperImpl.connect(JdbcHelperImpl.java:639)
la com.intellij.database.remote.jdbc.helpers.MysqlBaseJdbcHelper.connect(MysqlBaseJdbcHelper.java:244)
la com.intellij.database.remote.jdbc.impl.RemoteDriverImpl.connect(RemoteDriverImpl.java:55)
la java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Metoda nativă)
la java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
la java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
la java.base/java.lang.reflect.Method.invoke(Method.java:566)
la java.rmi/sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:359)
la java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:200)
la java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:197)
la java.base/java.security.AccessController.doPrivileged (Metoda nativă)
la java.rmi/sun.rmi.transport.Transport.serviceCall(Transport.java:196)
la java.rmi/sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:562)
la java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:796)
la java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:677)
la java.base/java.security.AccessController.doPrivileged (Metoda nativă)
la java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:676)
la java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
la java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
la java.base/java.lang.Thread.run(Thread.java:829)
Suprimat: com.intellij.database.util.AsyncTask$Frame$FrameData: Date cadru asincron: Testează conexiunea -> Pregătește conexiunea -> Stabilește conexiunea la baza de date -> Obține acreditările bazei de date -> Efectuează conexiunea la baza de date
2022-04-18 14:58:16,019 [ 59270] INFO - #c.i.e.r.RemoteProcessSupport - Încheiere: 127.0.0.1:58696/RemoteDriverImpld6de775c
2022-04-18 14:58:16,054 [ 59305] INFO - #c.i.e.r.RemoteProcessSupport - Procesul s-a încheiat cu codul de ieșire -1
Actualizare: am încercat „MySQL Workbench” pentru Windows și asta a funcționat în mod misterios imediat. Am încercat încă o dată pe ceilalți clienți și niciunul dintre ei nu s-a conectat cu succes. Nu adaug acest lucru ca răspuns, deoarece este doar o soluție și nu rezolvă și nu luminează problema inițială.