Can't connect via SSH

Hi, I use Studio 3T to connect with various Mongo servers, and it works well, thanks for a good tool. :+1:

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.

1 Like

Hi Nate, sorry to hear this. Can you please send us logs so we can look into this further for you?

Hi Yvonne,

Sorry, I missed that you had replied to this post. :blush:

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.

Hi Nate, no worries! Here is how to find the logs:

Logs: Open Finder → Go to the Go menu and select Go to Folder → enter ~/.3T in the window that pops up → hit return

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).

I keep thinking that my problem is that the internal SSH that 3T uses is (correctly) hitting the “Warning: Remote host identification has changed” error, as described in this article:

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:

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! :+1: :blush:

1 Like

Maybe Eligio is using windows. Because I have the same problem too, on windows, right after update to 2024.1.0.

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)

same problem here, SSH tunnel broke after latest update (macOS Studio 3T 2024.1.0)

I am having the same problem with macOS Sonoma 14.2.1, Studio 3T 2024.1.0.
Has anyone figured out a workaround except for compass? I need to do some user management, which is a lot easier with Studio 3T

I have the same issue with macOS Sonoma 14.2.1 and Studio 3T 2024.1.0

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?

I’m also experiencing this since updating 3T earlier today. Any ideas for a work-around short of manually opening an SSH tunnel?

I had the same error, just delete your ~/.ssh/known_hosts file and let it be created again.

1 Like

Already tried this. Did not work for me (on windows, maybe will work on other systems, i`m not sure). Still got the same error and file is not created again.

Did the trick for me. Thanks a lot!

Seems like Studio 3T will not add connections to known_hosts by itself. Luckily the problem does also not come up again when making a command line ssh connection to the respective server and re adding it to known hosts.

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

1 Like