Instead of adding the %All role to the /terminalsocket web app I suggest you add %DB_IRISLIB which should be sufficient to solve your issue.

My guess is, this environment used to give public %DB_IRISLIB:R but then someone tightened security by removing this, around the time you upgraded WebTerminal.

Such a change ought to show up in the audit log.

IRIS doesn't bundle its own ssh server. Unless your host platform offers ssh (not common on Windows) there'll be nothing for your ssh client to connect to.

For IRIS on Windows you have the option of enabling the %Service_Telnet service and connecting using telnet rather than ssh. You can optionally add extra security to this by configuring it to use TLS.

But as you're talking about localhost why not simply launch Terminal off your IRIS launcher in you Windows System Tray?

Are you connecting successfully to other servers and only having problems with this one?

In the Security section of InterSystems Portal on this server, does the profile of the 'therock' user show any login failure coinciding with your failed attempt to connect from VS Code?

Your reference to having pulled existing connections leads me to think you installed the InterSystems Server Manager extension. Are you able to expand the Namespaces subfolder of this server in the Server Manager tree?

If you set up a server-side-editing workspace accessing a namespace for which your class is the source control class, you should see these buttons at the top of an open class or routine:

Also these entries on the document's context menu:

Each will open a quickpick top-centre of your window. The "Server Source Control..." one will show menuitems from the %SourceMenu and %SourceContext menus in your XData block. The "Server Command Menu..." will show menuitems from all other menus in that block.

When you created the new file in the Explorer tree and named it (for example) foo.mac you should see a new file tab open with a first line like this:

I'm guessing you deleted or replaced that first line. Don't do that. Rather, start coding your routine at line 2. The first line is essential and should not normally be touched.