Hi, I use Studio 3T to connect with various Mongo servers, and it works well, thanks for a good tool.
There is one server that I’m not able to connect to via SSH, even though I can connect to the same server via “normal” SSH on the command line, using the same hostname, key file and username, etc. The only message I get from Studio 3T is “SSH Tunnel error: SSH tunnel could not be created to ANY server”.
I suspect that this is because the underlying server has changed since the first time I connected to it via Studio 3T. On the command line, this generally leads to the customary “IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!” message, which is then resolved by editing known_hosts. Does Studio 3T use its own internal ssh which has its own known_hosts file somewhere? Or am I barking up the wrong tree?
My workaround at the moment is to use Compass for this one server but I’d rather use 3T. Thanks for any help.
Hi Yvonne,
Sorry, I missed that you had replied to this post.
Can you tell me where I would look for logs so I can post or send them to you? I don’t see anything in the UI, other than the “SSH Tunnel error: SSH tunnel could not be created to ANY server” message when I try to connect.
I am using Studio 3T Basic 2023.9.1, on a Mac. I’ve looked in ~/Library/Application Support but don’t see anything for Studio 3T in there.
I have the same problem.
Until yesterday everything was ok.
Today, after upgrade to 2024.1.0, I have the same problem
“SSH Tunnel error: SSH tunnel could not be created to ANY server”
Here is the log for the same problem:
2024-02-08T19:56:26+0100 [3T::Connection Manager Thread] t3.utils.ak.kmkT.D()
ERROR: unexpected error: java.lang.IllegalArgumentException: Illegal base64 character 7c
at java.base/java.util.Base64$Decoder.decode0(Base64.java:848)
at java.base/java.util.Base64$Decoder.decode(Base64.java:566)
at java.base/java.util.Base64$Decoder.decode(Base64.java:589)
at net.schmizz.sshj.transport.verification.OpenSSHKnownHosts$EntryFactory.parseEntry(OpenSSHKnownHosts.java:292)
at net.schmizz.sshj.transport.verification.OpenSSHKnownHosts.readEntries(OpenSSHKnownHosts.java:96)
at net.schmizz.sshj.transport.verification.OpenSSHKnownHosts.<init>(OpenSSHKnownHosts.java:77)
at net.schmizz.sshj.SSHClient.loadKnownHosts(SSHClient.java:661)
at net.schmizz.sshj.SSHClient.loadKnownHosts(SSHClient.java:641)
at t3.utils.ak.kmkT.a(Session.java:538)
at t3.utils.ak.kmkT.D(Session.java:605)
at t3.utils.ak.kmkT.F(Session.java:754)
at t3.utils.connman.f.kmkT.a(MongoDBConnector.java:831)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
at t3.utils.connman.f.kmkT.d(MongoDBConnector.java:839)
at t3.utils.connman.f.kmkT.e(MongoDBConnector.java:522)
at t3.utils.connman.f.kmkT.f(MongoDBConnector.java:1210)
at t3.utils.connman.W9o8.c(ConnectionManager.java:1438)
at t3.utils.connman.W9o8.b(ConnectionManager.java:1355)
at t3.utils.connman.W9o8.d(ConnectionManager.java:406)
at com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:131)
at com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:74)
at com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:82)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:840)
2024-02-08T19:56:26+0100 [3T::Connection Manager Thread] t3.utils.connman.f.kmkT.a()
WARNING: failed to open tunnel to localhost:127017: t3.utils.ak.jtPS: unexpected error: Illegal base64 character 7c
at t3.utils.ak.kmkT.D(Session.java:691)
at t3.utils.ak.kmkT.F(Session.java:754)
at t3.utils.connman.f.kmkT.a(MongoDBConnector.java:831)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
at t3.utils.connman.f.kmkT.d(MongoDBConnector.java:839)
at t3.utils.connman.f.kmkT.e(MongoDBConnector.java:522)
at t3.utils.connman.f.kmkT.f(MongoDBConnector.java:1210)
at t3.utils.connman.W9o8.c(ConnectionManager.java:1438)
at t3.utils.connman.W9o8.b(ConnectionManager.java:1355)
at t3.utils.connman.W9o8.d(ConnectionManager.java:406)
at com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:131)
at com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:74)
at com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:82)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:840)
Caused by: java.lang.IllegalArgumentException: Illegal base64 character 7c
at java.base/java.util.Base64$Decoder.decode0(Base64.java:848)
at java.base/java.util.Base64$Decoder.decode(Base64.java:566)
at java.base/java.util.Base64$Decoder.decode(Base64.java:589)
at net.schmizz.sshj.transport.verification.OpenSSHKnownHosts$EntryFactory.parseEntry(OpenSSHKnownHosts.java:292)
at net.schmizz.sshj.transport.verification.OpenSSHKnownHosts.readEntries(OpenSSHKnownHosts.java:96)
at net.schmizz.sshj.transport.verification.OpenSSHKnownHosts.<init>(OpenSSHKnownHosts.java:77)
at net.schmizz.sshj.SSHClient.loadKnownHosts(SSHClient.java:661)
at net.schmizz.sshj.SSHClient.loadKnownHosts(SSHClient.java:641)
at t3.utils.ak.kmkT.a(Session.java:538)
at t3.utils.ak.kmkT.D(Session.java:605)
at t3.utils.ak.kmkT.F(Session.java:754)
at t3.utils.connman.f.kmkT.a(MongoDBConnector.java:831)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
2024-02-08T19:56:26+0100 [main] t3.utils.connman.VgQX.a()
ERROR: Update is ProgressUpdate: Configuring SSH tunnel via x.x.x.x:22122 SSH Tunnel error: SSH tunnel could not be created to ANY server: t3.utils.connman.H3nW: SSH Tunnel error: SSH tunnel could not be created to ANY server
at t3.utils.connman.f.kmkT.e(MongoDBConnector.java:662)
at t3.utils.connman.f.kmkT.f(MongoDBConnector.java:1210)
at t3.utils.connman.W9o8.c(ConnectionManager.java:1438)
at t3.utils.connman.W9o8.b(ConnectionManager.java:1355)
at t3.utils.connman.W9o8.d(ConnectionManager.java:406)
at com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:131)
at com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:74)
at com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:82)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:840)
Caused by: t3.utils.ak.jtPS: SSH tunnel could not be created to ANY server
at t3.utils.connman.f.kmkT.e(MongoDBConnector.java:539)
at t3.utils.connman.f.kmkT.f(MongoDBConnector.java:1210)
at t3.utils.connman.W9o8.c(ConnectionManager.java:1438)
at t3.utils.connman.W9o8.b(ConnectionManager.java:1355)
at t3.utils.connman.W9o8.d(ConnectionManager.java:406)
at com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:131)
at com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:74)
at com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:82)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:840)
2024-02-08T19:56:26+0100 [main] t3.utils.connman.VgQX.a()
ERROR: Update is ProgressUpdate: Configuring SSH tunnel via x.x.x.x:22122 SSH Tunnel error: SSH tunnel could not be created to ANY server: t3.utils.connman.H3nW: SSH Tunnel error: SSH tunnel could not be created to ANY server
at t3.utils.connman.f.kmkT.e(MongoDBConnector.java:662)
at t3.utils.connman.f.kmkT.f(MongoDBConnector.java:1210)
at t3.utils.connman.W9o8.c(ConnectionManager.java:1438)
at t3.utils.connman.W9o8.b(ConnectionManager.java:1355)
at t3.utils.connman.W9o8.d(ConnectionManager.java:406)
at com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:131)
at com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:74)
at com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:82)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:840)
Caused by: t3.utils.ak.jtPS: SSH tunnel could not be created to ANY server
at t3.utils.connman.f.kmkT.e(MongoDBConnector.java:539)
at t3.utils.connman.f.kmkT.f(MongoDBConnector.java:1210)
at t3.utils.connman.W9o8.c(ConnectionManager.java:1438)
at t3.utils.connman.W9o8.b(ConnectionManager.java:1355)
at t3.utils.connman.W9o8.d(ConnectionManager.java:406)
at com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:131)
at com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:74)
at com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:82)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:840)
Hi Yvonne,
The log doesn’t tell us much (see below).
I have triple-verified that I can use the same credentials and the same hostname etc successfully using plain SSH or via another Mongo client (Compass).
The "Warning: Remote host identification has changed" error protects your connection from certain malicious attacks. Here's how to fix it.
Est. reading time: 9 minutes
Normally in such a case, one would remove the corresponding lines from known_hosts (ONLY if the warning is expected of course!!!) which would allow the connection to go through next time.
Maybe 3T stores its own internal/private “known_hosts” file somewhere, and if I knew where to find it I could remove the line for the server I want to connect to and all would be well.
Of course this theory is just a guess. ![:man_shrugging: :man_shrugging:](https://community.studio3t.com/images/emoji/twitter/man_shrugging.png?v=12)
I tried renaming ~/.3T folder and starting from scratch. No success, always the same problem.
Tried with mongodb compass, and everything works perfectly.
Hi, this issue is now resolved for me as of version 2024.1.0 (06-Feb-2024).
I’m guessing that maybe an update to the underlying JRE version gave us a fix in the SSH implementation or something along those lines.
I can’t speak for Eligio, who seems to have a slightly different version of the issue, but it’s working now for me!
![:blush: :blush:](https://community.studio3t.com/images/emoji/twitter/blush.png?v=12)
I’m having the above problem on Windows 10 with Studio 3T v.2024.1.0
Connecting via ssh tunnel has been working until latest update.
Here is a log extract the moment of a connection via ssh tunnel:
2024-02-14T10:49:49+0100 [3T::Connection Manager Thread] t3.utils.ak.kmkT.D()
ERROR: unexpected error: java.lang.IllegalArgumentException: Input byte array has incorrect ending byte at 140
at java.base/java.util.Base64$Decoder.decode0(Base64.java:876)
at java.base/java.util.Base64$Decoder.decode(Base64.java:566)
at java.base/java.util.Base64$Decoder.decode(Base64.java:589)
at net.schmizz.sshj.transport.verification.OpenSSHKnownHosts$EntryFactory.parseEntry(OpenSSHKnownHosts.java:292)
at net.schmizz.sshj.transport.verification.OpenSSHKnownHosts.readEntries(OpenSSHKnownHosts.java:96)
at net.schmizz.sshj.transport.verification.OpenSSHKnownHosts.<init>(OpenSSHKnownHosts.java:77)
at net.schmizz.sshj.SSHClient.loadKnownHosts(SSHClient.java:661)
at net.schmizz.sshj.SSHClient.loadKnownHosts(SSHClient.java:641)
at t3.utils.ak.kmkT.a(Session.java:538)
at t3.utils.ak.kmkT.D(Session.java:605)
at t3.utils.ak.kmkT.F(Session.java:754)
at t3.utils.connman.f.kmkT.a(MongoDBConnector.java:831)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
at t3.utils.connman.f.kmkT.d(MongoDBConnector.java:839)
at t3.utils.connman.f.kmkT.e(MongoDBConnector.java:522)
at t3.utils.connman.f.kmkT.f(MongoDBConnector.java:1210)
at t3.utils.connman.W9o8.c(ConnectionManager.java:1438)
at t3.utils.connman.W9o8.b(ConnectionManager.java:1355)
at t3.utils.connman.W9o8.d(ConnectionManager.java:406)
at com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:131)
at com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:74)
at com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:82)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:840)
2024-02-14T10:49:49+0100 [3T::Connection Manager Thread] t3.utils.connman.f.kmkT.a()
WARNING: failed to open tunnel to XXX.XX.X.X:127017: t3.utils.ak.jtPS: unexpected error: Input byte array has incorrect ending byte at 140
at t3.utils.ak.kmkT.D(Session.java:691)
at t3.utils.ak.kmkT.F(Session.java:754)
at t3.utils.connman.f.kmkT.a(MongoDBConnector.java:831)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
at t3.utils.connman.f.kmkT.d(MongoDBConnector.java:839)
at t3.utils.connman.f.kmkT.e(MongoDBConnector.java:522)
at t3.utils.connman.f.kmkT.f(MongoDBConnector.java:1210)
at t3.utils.connman.W9o8.c(ConnectionManager.java:1438)
at t3.utils.connman.W9o8.b(ConnectionManager.java:1355)
at t3.utils.connman.W9o8.d(ConnectionManager.java:406)
at com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:131)
at com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:74)
at com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:82)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:840)
Caused by: java.lang.IllegalArgumentException: Input byte array has incorrect ending byte at 140
at java.base/java.util.Base64$Decoder.decode0(Base64.java:876)
at java.base/java.util.Base64$Decoder.decode(Base64.java:566)
at java.base/java.util.Base64$Decoder.decode(Base64.java:589)
at net.schmizz.sshj.transport.verification.OpenSSHKnownHosts$EntryFactory.parseEntry(OpenSSHKnownHosts.java:292)
at net.schmizz.sshj.transport.verification.OpenSSHKnownHosts.readEntries(OpenSSHKnownHosts.java:96)
at net.schmizz.sshj.transport.verification.OpenSSHKnownHosts.<init>(OpenSSHKnownHosts.java:77)
at net.schmizz.sshj.SSHClient.loadKnownHosts(SSHClient.java:661)
at net.schmizz.sshj.SSHClient.loadKnownHosts(SSHClient.java:641)
at t3.utils.ak.kmkT.a(Session.java:538)
at t3.utils.ak.kmkT.D(Session.java:605)
at t3.utils.ak.kmkT.F(Session.java:754)
at t3.utils.connman.f.kmkT.a(MongoDBConnector.java:831)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
2024-02-14T10:49:49+0100 [main] t3.utils.connman.VgQX.a()
ERROR: Update is ProgressUpdate: Configuring SSH tunnel via xxxx.xxxxxx.org:22 SSH Tunnel error: SSH tunnel could not be created to ANY server: t3.utils.connman.H3nW: SSH Tunnel error: SSH tunnel could not be created to ANY server
at t3.utils.connman.f.kmkT.e(MongoDBConnector.java:662)
at t3.utils.connman.f.kmkT.f(MongoDBConnector.java:1210)
at t3.utils.connman.W9o8.c(ConnectionManager.java:1438)
at t3.utils.connman.W9o8.b(ConnectionManager.java:1355)
at t3.utils.connman.W9o8.d(ConnectionManager.java:406)
at com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:131)
at com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:74)
at com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:82)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:840)
Caused by: t3.utils.ak.jtPS: SSH tunnel could not be created to ANY server
at t3.utils.connman.f.kmkT.e(MongoDBConnector.java:539)
at t3.utils.connman.f.kmkT.f(MongoDBConnector.java:1210)
at t3.utils.connman.W9o8.c(ConnectionManager.java:1438)
at t3.utils.connman.W9o8.b(ConnectionManager.java:1355)
at t3.utils.connman.W9o8.d(ConnectionManager.java:406)
at com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:131)
at com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:74)
at com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:82)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:840)
I have the same issue on manjaro with Studio 3T 2024.1.0
I have about 40 databases configured in studio 3T which i now have to set up a manual ssh tunnel when i want to connect to them.
Is there an easy way to revert to the previous version?
We upgraded the SSH libraries in 2024.1 to support a wider variety of SSH configurations. These updated libraries also included a more strict parser of private keys for higher security. This means that private key character length must be a multiple of 4 (base64). Please check your private key and add 1 or 2 equal signs to the end of it in order to reach a multiple of 4 characters that should hopefully resolve the issue. If not, please also try deleting your ~/.ssh/known_hosts file.
Otherwise, please roll back to our previous release at one of the relevant links below.
Apple Silicon (M1/M2) - https://download.studio3t.com/studio-3t/mac-aarch64/2023.9.2/Studio-3T.dmg
Intel Mac - https://download.studio3t.com/studio-3t/mac/2023.9.2/Studio-3T.dmg
Windows - https://download.studio3t.com/studio-3t/windows/2023.9.2/studio-3t-x64.zip