Рейтинг:0

Получение «Ошибка создания туннеля SSH: ошибка открытия» от datagrip при проверке соединения

флаг ru

При попытке подключиться к удаленному серверу mysql через туннель ssh с использованием datagrip в Windows 10 в качестве клиента я получаю сообщение «Ошибка создания туннеля SSH: ошибка открытия».

Я могу успешно установить и подключиться к туннелю с помощью: ssh имя пользователя @ mysqlServer -L 22: удаленный хост: 3306.

Я использую datagrip в качестве основной демонстрации проблемы, потому что он предоставляет некоторую отладочную информацию при тестировании соединения, но я пробовал dbeaver и tableplus, оба не смогли подключиться.

Другие пользователи в моей организации могут прекрасно подключаться к удаленному серверу mysql на компьютерах Macos.

Логи из датагрипа:

2022-04-18 14:58:14,313 [ 57564] INFO - n.s.s.t.r.JCERandom - Создание нового SecureRandom.
2022-04-18 14:58:14,411 [ 57662] ИНФОРМАЦИЯ — #c.i.s.i.s.sshj — Строка идентификатора клиента: SSH-2.0-IntelliJ__DataGrip_DB-221.5080.224__SSHJ_0.32.0_idea2
2022-04-18 14:58:14,508 [ 57759] ИНФОРМАЦИЯ — #c.i.s.i.s.sshj — Строка идентификатора сервера: SSH-2.0-OpenSSH_7.2p2 Ubuntu-4ubuntu2.8
2022-04-18 14:58:15,258 [ 58509] ИНФОРМАЦИЯ - #c.i.s.i.s.sshj - Журнал аутентификации: SSH-подключение к username@mysqlServer:22
 * С измененными настройками подключения:
  - 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], агент=НЕТ), пароль, KeyboardInteractive
  - пользователь: имя пользователя
 * Подключено: сокет [адрес = mysqlServer/mysqlServer, порт = 22, локальный порт = 63766]
 * Запуск аутентификации
  => нет (ошибка, новые методы аутентификации, разрешенные сервером: открытый ключ)
  => открытый ключ C:\Users\spenc\.ssh\id_rsa (успешно)
2022-04-18 14:58:15,270 [ 58521] ИНФОРМАЦИЯ - #c.i.d.d.DatabaseSshTunnelEstablisher - создан туннель SSH: 63768:remoteHost:3306
2022-04-18 14:58:15,317 [ 58568] ИНФОРМАЦИЯ - #c.i.e.r.RemoteProcessSupport - "C:\Program Files\JetBrains\DataGrip 2022.1.1\jbr\bin\java" -Djava.rmi.server.hostname=127.0. 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\jdbc- console.jar;C:\Users\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] ИНФОРМАЦИЯ — #c.i.e.r.RemoteProcessSupport — порт/порт служб/идентификатор: 58696/63770/RemoteDriverImpld6de775c
2022-04-18 14:58:15,713 [ 58964] ИНФОРМАЦИЯ - #c.i.e.r.RemoteProcessSupport - 
2022-04-18 14:58:15,772 [ 59023] ИНФОРМАЦИЯ — #c.i.d.d.DatabaseConnectionEstablisher — подключение к: jdbc:mysql://remoteHost:3306/dbName
2022-04-18 14:58:15,774 [ 59025] ИНФОРМАЦИЯ — #c.i.d.d.DatabaseConnectionEstablisher — Поставщик аутентификации: пароль пользователя
2022-04-18 14:58:15,776 [ 59027] ИНФОРМАЦИЯ - #c.i.d.d.DatabaseCredentialsAuthProvider - Подключение как: имя пользователя
2022-04-18 14:58:15,778 [ 59029] ИНФОРМАЦИЯ — #c.i.d.d.DatabaseConnectionEstablisher — подключение к (переписано): jdbc:mysql://localhost:63768/dbName
2022-04-18 14:58:15,987 [ 59238] ПРЕДУПРЕЖДЕНИЕ - #c.i.s.i.s.sshj - <<chan # 0 / open >> проснулся: открытие канала `direct-tcpip` не удалось: открытие не удалось
2022-04-18 14:58:15,989 [ 59240] ИНФОРМАЦИЯ - #c.i.s.i.s.sshj - Ошибка в локальном туннеле SSHJ для SshjSshConnection(username@mysqlServer)@82260ee: Локальный клиент /127.0.0.1:63774 ==> Локальный сервер localhost: 63768 ==> Удаленный сервер remoteHost:3306`: net.schmizz.sshj.connection.channel.OpenFailException: ошибка открытия
2022-04-18 14:58:16,016 [ 59267] ПРЕДУПРЕЖДЕНИЕ - #c.i.d.d.BaseDatabaseErrorHandler$IOErrorInfo - Невозможно прочитать ответ от сервера. Ожидается чтение 4 байтов, чтение 0 байтов перед неожиданной потерей соединения.
java.io.EOFException: невозможно прочитать ответ с сервера. Ожидается чтение 4 байтов, чтение 0 байтов перед неожиданной потерей соединения.
    в com.mysql.cj.protocol.FullReadInputStream.readFully(FullReadInputStream.java:67)
    в com.mysql.cj.protocol.a.SimplePacketReader.readHeader(SimplePacketReader.java:63)
    в com.mysql.cj.protocol.a.SimplePacketReader.readHeader(SimplePacketReader.java:45)
    в com.mysql.cj.protocol.a.NativeProtocol.readMessage(NativeProtocol.java:540)
    в com.mysql.cj.protocol.a.NativeProtocol.readServerCapabilities(NativeProtocol.java:498)
    в com.mysql.cj.protocol.a.NativeProtocol.beforeHandshake(NativeProtocol.java:385)
    в com.mysql.cj.protocol.a.NativeProtocol.connect(NativeProtocol.java:1351)
    в com.mysql.cj.NativeSession.connect(NativeSession.java:157)
    в com.mysql.cj.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:953)
    в com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:823)
    в com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:453)
    в com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:246)
    в com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:198)
    на com.intellij.database.remote.jdbc.helpers.JdbcHelperImpl.connect(JdbcHelperImpl.java:639)
    на com.intellij.database.remote.jdbc.helpers.MysqlBaseJdbcHelper.connect(MysqlBaseJdbcHelper.java:244)
    на com.intellij.database.remote.jdbc.impl.RemoteDriverImpl.connect(RemoteDriverImpl.java:55)
    в java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (собственный метод)
    в java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    в java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    в java.base/java.lang.reflect.Method.invoke(Method.java:566)
    на java.rmi/sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:359)
    на java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:200)
    на java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:197)
    в java.base/java.security.AccessController.doPrivileged (собственный метод)
    на java.rmi/sun.rmi.transport.Transport.serviceCall(Transport.java:196)
    на java.rmi/sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:562)
    в java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:796)
    в java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:677)
    в java.base/java.security.AccessController.doPrivileged (собственный метод)
    на java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:676)
    в java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    в java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    на java.base/java.lang.Thread.run(Thread.java:829)
    Подавлено: com.intellij.database.util.AsyncTask$Frame$FrameData: Данные асинхронного кадра: Тестовое соединение -> Подготовить подключение -> Установить подключение к базе данных -> Получить учетные данные базы данных -> Выполнить подключение к базе данных
2022-04-18 14:58:16,019 [ 59270] ИНФОРМАЦИЯ — #c.i.e.r.RemoteProcessSupport — завершение: 127.0.0.1:58696/RemoteDriverImpld6de775c
2022-04-18 14:58:16,054 [ 59305] ИНФОРМАЦИЯ - #c.i.e.r.RemoteProcessSupport - Процесс завершен с кодом выхода -1

Обновление: я попробовал «MySQL Workbench» для Windows, и это сразу же таинственным образом сработало. Я попробовал другие клиенты еще раз, и ни один из них не подключился. Я не добавляю это как ответ, так как это просто обходной путь, который не решает и не освещает исходную проблему.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.