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