Skip to main content

Connecting to a workstation via SSH from Windows

There are several ways to connect to workstations via SSH from Windows:

  • Windows Subsystem for Linux (WSL), a free add-on available from Microsoft. We recommend that Windows users use WSL. See the previous page for more information.
  • PowerShell, a built-in program.
  • PuTTY, a free, open-source SSH client.

Configure your account for SSH access

To connect to a workstation with SSH, you must first create a SSH key and upload it to your account. Follow these instructions.

Install OpenSSL

To help keep your workstations secure, SSL is required to connect to a workstation. Secure Sockets Layer (SSL) is a protocol for establishing secure links between networked computers. To use VS Code, PowerShell or PuTYY to connect to a workstation, Windows users must install an SSL toolkit. We recommend that Windows users follow the instructions below to install OpenSSL.

  1. Navigate your browser to Git for Windows, which provides a simple OpenSSL installer for Windows.
  2. Click the "Download" button.
  3. Run the downloaded program.
  4. If a dialog titled "Do you want to allow this app to make changes to your device?" opens, click the "Yes" button.
  5. Follow the on-screen instructions to install Git and OpenSSL. We recommend choosing the following installation options:
    • In the "Select Components" screen, check "Associate .git* configuration files with the default text editor".
    • In the "Choosing the default editor used by Git screen", select "Use Visual Studio Code as Git's default editor".
    • In the "Adjusting your PATH environment" screen, select "Git from the command line and also from 3rd-party software".
    • In the "Choosing the SSH executable" screen, select "Use bundled OpenSSH".
    • In the "Choosing HTTPS transport backend" screen, select "Use the OpenSSL library".
  6. Add OpenSSL to your system path.
    1. Open the Windows Start menu.
    2. Type "Edit the system environment variables" in the search bar in the Start menu.
    3. In the right panel, click the "Open" button for the "Edit the system environment variables" control panel. This will open the "System Properties" window.
    4. Click the "Environment Variables..." button at the bottom of the "System Properties" window.
    5. In the "System variables" section, select the "Path" variable and then click the "Edit..." button. This will open the "Edit environment variable" window.
    6. In the "Edit environment variable" window, click the "New" button.
    7. In the input box that opens, enter C:\Program Files\Git\usr\bin or the path to the usr\bin subdirectory of the directory where you installed Git.
    8. Click the "OK" button of the "Edit environment variable" window.
    9. Click the "OK" button of the "Environment Variables" window.
    10. Click the "OK" button of the "System Properties" window.

Connecting to a workstation with PowerShell

PowerShell is a command-shell for Windows. To use PowerShell to connect to a workstation, follow the instructions above to install OpenSSL and then follow the instructions below.

  1. Get the ID for your workstation.

    1. Navigate to the workstations overview page.
    2. Locate the workstation that you would like to connect to.
  2. Copy the following command to run SSH, replacing the following variables

    • org-id: Replace with the ID of your organization, such as acme-bio.
    • workstation-id: Replace with the ID of the workstation, such as exceptional-panda-g1i.
    • blueprint-id: Replace with the ID of the software blueprint, such as python.
    • compute-cluster-id: with the ID of the compute cluster, such as us-west-2.aws.
    • ssh-private-key-file: with the path to your private key file, such as ~/.ssh/id_rsa.
    Example PowerShell command
    ssh -o ProxyCommand="openssl s_client -quiet -connect {compute-cluster-id}.bench.deeporigin.io:2222 -servername {workstation-id}-{blueprint-id}.org-{org-id}" bench-user@{workstation-id} -i {ssh-private-key-file}
  3. Open the Windows Start menu.

  4. Type "PowerShell" in the search bar in the Start menu.

  5. In the right panel, click the "Open" button for the PowerShell app. This will open a window for the PowerShell application.

  6. Enter the command from Step 2 above into the PowerShell window.

  7. The first time that you connect, you will be prompted "Are you sure you want to continue connecting (yes/no/[fingerprint])?". Enter "yes" to connect to your workstation.

Optionally, configure your SSH client to enable simpler commands for connecting to workstations

To enable simpler commands for connecting to workstations, first follow the instructions below to add an entry for the Deep Origin OS to your SSH configuration file. This step only needs to be completed once for each computer.

  1. Open a text editor, such as Notepad.

    1. Open the Windows Start menu.
    2. Type "Notepad" in the search bar in the Start menu.
    3. In the search result for the Notepad App in the right panel, click the "Run as Administrator" button. This will open a window for the Notepad application.
  2. Within your text editor, open or create the SSH configuration file, %USERPROFILE%\.ssh\config.

  3. Append the following to the end of the configuration file, replacing the following variables

    • compute-cluster-id: Replace with the ID of your compute cluster, such as us-west-2.aws.
    • ssh-private-key-file: Replace with the path to your SSH private key file.
    SSH configuration file snippet for PowerShell with Git
    Host  *.{compute-cluster-id}.bench.deeporigin.io
    ProxyCommand openssl s_client -quiet -connect {compute-cluster-id}.bench.deeporigin.io:2222 -servername $(echo %h | sed s/\{compute-cluster-id}\.bench\.deeporigin\.io$//g)
    User bench-user
    IdentityFile {ssh-private-key-file}
  4. Save the SSH configuration file.

Once you have added an entry for the Deep Origin OS to your SSH configuration file, you can use the following PowerShell command template to connect to workstations, replacing the following variables:

  • org-id: Replace with the ID of your organization, such as acme-bio.
  • workstation-id: Replace with the ID of the workstation, such as exceptional-panda-g1i.
  • blueprint-id: Replace with the ID of the software blueprint, such as python.
  • compute-cluster-id: with the ID of the compute cluster, such as us-west-2.aws.
SSH connection command after advanced configuration
& 'C:\Program Files\Git\usr\bin\ssh.exe' {workstation-id}-{blueprint-id}.org-{org-id}.{compute-cluster-id}.bench.deeporigin.io

You can also add the -verify_quiet flag to the above configuration, after the -quiet flag, to suppress additional debugging output from OpenSSL. Some distributions may not support this option.

Note, we recommend using the SSH client provided with Git, rather than the client provided by Windows.

Connecting to a workstation with PuTTY

Configure PuTTY to connect to the workstation

info

If your private key file doesn't have a .ppk extension, it needs to be converted to PuTTY format before being used. Follow these instructions.

After installing OpenSSL and PuTTY, follow the steps below to configure PuTTY to connect to your workstation. These steps only need to be executed the first time that you connect to a new workstation.

  1. Open PuTTY.
  2. In the left menu, click the "Session" category.
  3. In the right panel, in the "Host Name" section, type the ID for your workstation.
  4. In the left menu, click the "Connection > Data" category.
  5. In the right panel, in the "Auto-login username" section, enter bench-user.
  6. In the left menu, click the "Connection > Proxy" category.
  7. In the right panel, in the "Proxy type" section, select "Local".
  8. In the right panel, in the "Telnet command or local proxy command" section, enter C:\Program Files\Git\usr\bin\openssl.exe s_client -quiet -connect {compute-cluster-id}.bench.deeporigin.io:2222 -servername {workstation-id}-{blueprint-id}.org-{org-id}, replacing the following variables:
    • org-id: Replace with the ID of your organization, such as acme-bio.
    • workstation-id: Replace with the ID of the workstation, such as exceptional-panda-g1i.
    • blueprint-id: Replace with the ID of the software blueprint, such as python.
    • compute-cluster-id: with the ID of the compute cluster, such as us-west-2.aws.
  9. In the left menu, click the "Connection > SSH > Auth" category.
  10. In the right panel, in the "Private key file for authentication" section, click the "Browse..." button and select the private key file for your workstation that you generated during the SSH configuration.
  11. In the left menu, click the "Session" category.
  12. In the right panel, in the "Saved Sessions" input box, enter the name for your workstation.
  13. In the right panel, below the "Saved Sessions" input box, click the "Save" button.
info

If you have installed Git for Windows or OpenSSL in a location other than the default, provide the path to openssl.exe in step 8 above.

Use PuTTY to connect to the workstation

After configuring PuTTY, follow the steps below to connect to your workstation:

  1. Open PuTTY.
  2. In the left menu, click the "Session" category.
  3. In the right panel, in the "Load, save, or delete a stored session" section, select the name of your workstation and click the "Load" button.
  4. At the bottom right of the PuTTY application, click the "Open" button.
  5. The first time you connect to your workstation, PuTTY will open a prompt which asks if you trust your host. Click the "Accept" button.