Windows SSH tunneling

Hi,

we have been trying to set up SSH tunneling for a Windows laptop using Putty. So far, no luck. We have passwordless login set up, but any configuration we set up for port 39000 in the SSH -> Tunnels menu of Putty doesn’t seem to work.

We got SSH tunneling to work no problem with various Macs throughout the lab, just can’t figure out Windows yet.

Thanks!
Rick

Does your laptop have Windows 10? The Windows Subsystem for Linux (WSL) is generally better than Putty and cygwin these days, and you can simply transfer over all the commands you use in Linux.

You can install it from the Windows Store as “Bash for Ubuntu on WIndows” and it gives you a BASH Start Menu item. WSL implements most of the Linux API and gives you a complete Ubuntu environment, which is in its own special area of the filesystem. The regular Windows disks can be found in /mnt/c and so forth. I use ssh csparc -L39000:localhost:39000 this way just like via MacOS or Linux. Also check out ssh -J if you need to go through some specific entry point.

3 Likes

Hey @DanielAsarnow, @RickBaker,

Thanks for the helpful tip! I had initially posted a link to Putty’s documentation explaining how to do SSH Tunnelling, but if that doesn’t work, I’ll update the post with your instructions.

Windows 10 PowerShell offers the same thing. You don’t need to install the Linux environment. PowerShell and WSL have their advantages and disadvantages.

Hi @DanielAsarnow, can you got connected now?

I installed the cryosparc in standalone mode and the software can be normally lanuched on the workstation. But I can not access it in a Windows 10 computer by SSH. It would be very helpful to have a detail manual that explain how to use Cryosparc in Windows by SSH to follow. I tried several SSH tools (X manager, Putty, WSL and PowerShell), but all failed.

Any suggestions would be appreciated. Thanks. @rkhayat @RickBaker

1 Like

I use it daily (in fact, using it as we speak) through WSL. The simplest step-wise process would be

  1. Install Ubuntu 18.04 from the Microsoft Store (Windows 10)
  2. Run Ubuntu
  3. Run > ssh -N -f -L localhost:39000:localhost:39000 remoteuser@remotehostname (If connecting from outside the network, make sure your VPN is connected first).
  4. Open your local browser and go to localhost:39000

This method has worked for me on many workstations and I routinely process data at home. Maybe your VPN has issues? or maybe the host computer has a firewall enabled that is blocking the ports from being forwarded? You’d have to check the firewall settings on the host for that.

2 Likes

Thanks for your quick reply. I found the item remoteuser@remotehostname is confusing. For instance, my account on the workstation is fourteen, and the hostname of my workstation is EMlab, then the remoteuser@remotehostname should be fourteen@EMlab, is that correct? When I using ssh -N -f -L localhost:39000:localhost:39000 fourteen@EMlab, the output is “ssh: Could not resolve hostname EMlab: Temporary failure in name resolution”. I also tried to replace EMlab with IP address of the workstation, but cann’t log in the workstation after entering a correct password.

This problem has been solved. Here I attach the detail protocol which may be useful for others:

The system of my computer is Windows 10, I access the workstation which installs the Cryosparc via the WSL suggested by @DanielAsarnow and @vamsee . This protocol is derived from the Installation tutorial :https://cryosparc.com/docs/reference/install ( Accessing the cryoSPARC UI Remotely via SSH-Tunneling).

  1. Install and open the WSL
  2. ssh-keygen -t rsa -N “” -f $HOME/.ssh/id_rsa
  3. ssh-copy-id remote_username@IP_of_the_remote_hostname
  4. ssh -N -f -L localhost:39000:localhost:39000 remote_username@IP_of_the_remote_hostname
  5. ssh remote_username@IP_of_the_remote_hostname
  6. cryosparcm start
  7. Open the Chrome and enter: remote_username@IP_of_the_remote_hostname:39000

In my occasion, directly using the remote_hostname causes the error described above: ssh: Could not resolve hostname EMlab: Temporary failure in name resolution. So I used the IP address of the workstation instead and it worked. Importantly, the address entered to Chrome should be remote_username@IP_of_the_remote_hostname:39000 rather than remote_hostname:39000. This also works on an VMware.
Thank you all.

3 Likes

Hi @Yifei @vamsee

Thanks for your detailed protocols. Really appreciated, I still have a few questions.

So I downloaded and installed Ubuntu/WSL in my Windows 10. What would be the next steps? I am guessing installation of cryosparc in my windows system and run ssh-keygen -t rsa -N “” -f $HOME/.ssh/id_rsa command? Do I have to connect to the VPN first? Thanks.

I’m guessing you are trying to connect to a central workstation through your windows computer to process your data. If that’s the case, then cryosparc should already be installed on the remote computer and you’ll just need your username and the IP address of the remote computer and then follow the above method. You’ll need to your work network using VPN first though. There is no separate installation of cryosparc needed if you are connecting to a remote workstation.

Thanks @vamsee,

Appreciate your quick response. Very helpful. We are just getting started with cryosparc. One more question, Is it possible to set up the Windows 10 system as a central cryosparc workstation via Ubuntu/WSL?

Ubuntu/WSL is only half baked. It will not provide all the functionality/libraries that cryosparc will need. A dedicated linux machine is the best way to run cryosparc master or worker nodes.

2 Likes