SSH to node from "My Interactive Sessions" screen (clicking blue [>_nodename.cluster] button) not working

Hi there,

One of my users reported that clicking on the button with the nodename, shown below, doesn’t work:

Screen Shot 2021-10-13 at 4.34.02 PM

I didn’t realize that was there, so I hadn’t tested it, but they are right. I get the following error:

“Failed to establish a websocket connection. Be sure you are using a browser that supports websocket connections.”

I’m aware that Safari doesn’t support this, but it doesn’t work in Firefox or Chrome either. We run the Desktop app via a Singularity container, if that makes a difference.

How can I go about troubleshooting this? I’m not sure what this function is called (hence the clunky title), so I’m not sure if there are any docs.

The URL, in case that helps, is:

https://<servername>/pun/sys/shell/ssh/<nodename>

Does your site allow folks to ssh into compute nodes? There’s a way to disable this feature altogether, so the button won’t appear (though I’ll have to look it up if you’d like that).

But essentially, it works as you indicate - just uses the shell app to shell into a compute node. My guess is you have some connectivity issues or just don’t allow shelling into compute nodes.

If you want to allow this, you have to enable your compute nodes through the shell allow list. Here’s our allowlist for our compute nodes.

Thanks, Jeff! The issue was that environment variable not being defined. I hadn’t realized it existed. It’s actually not mentioned anywhere in the apps/shell/README.md, or in the docs for the shell app on Github that I can see. The only variable mentioned is DEFAULT_SSHHOST. Is there a doc somewhere that might explain the difference between DEFAULT_SSHHOST and OOD_DEFAULT_SSHHOST, for example?

At our site, anyone who’s got a job running on a compute node can SSH from the login node to that compute node (uses the PAM module that comes with SLURM to control that), which would be satisfied by a running desktop. This does seem to work as expected with the right allow list.

Kind of would be nice if this could accept the same list as /etc/ood/config/ood_portal.yml's host_regex parameter, or even inherit that list, since it seems likely that you’d want it to default to allowing SSH to the same hosts, if you want to enable SSH at all.

Ah, another user at my site pointed me over here: Customization — Open OnDemand 2.0.13 documentation

(interesting that it calls that link 2.0.13 documentation; the URL I used has no version number)

Probably should also be mentioned in the shell app docs, I guess.