🤔 Problem

Many Renku users prefer to work from the comfort of their local development environment. We’ve solved this in Renku 1.0 by offering the ability to SSH into RenkuLab sessions. We want to offer the same user workflow in Renku 2.0 (not necessarily the same under-the-hood implementation of SSH into sessions, but the same end-result).

🍴 Appetite

We know this is an important feature. While we’re here porting this to Renku 2.0, let’s do it well. Devote a full build cycle i.e. 6 weeks.

🎯 Solution

The core functionality that we want working is that a user can connect to a pre-existing session via SSH:

Option 1 - public keys

  1. User adds public key to RenkuLab in user preferences
    1. Beware: If you just added a key, then only works for brand new sessions, not running sessions, so need a warning. (Restart session to take effect).
  2. User gets an SSH command from somewhere[?] in RenkuLab, a la ssh [email protected]
    1. Options for where the user gets the SSH command:
      1. nicer flow: Session launch drop down contains a “Launch SSH Session” option, which launches a session in the browser, goes through the session launch checkboxes, but then lands you on a page with the ssh command (maybe with a button to continue to the browser session)
      2. a button inside the session itself? for example in the session header?
      3. in the session launch drop down, similar to how the Start an SSH session in RenkuLab 1.0 works now?
  3. User runs the SSH command from their local machine (it may be a long command)

Option 2 - OAuth

  1. User starts a session via the browser normally (not doing anything special for an SSH session)
  2. User gets an SSH command from somewhere[?] in RenkuLab, a la ssh [email protected]
    1. Options for where the user gets the SSH command:
      1. nicer flow: Session launch drop down contains a “Launch SSH Session” option, which launches a session in the browser, goes through the session launch checkboxes, but then lands you on a page with the ssh command (maybe with a button to continue to the browser session)
      2. a button inside the session itself? for example in the session header?
      3. in the session launch drop down, similar to how the Start an SSH session in RenkuLab 1.0 works now?
  3. User runs the SSH command from their local machine
    1. gets a code and is asked to go a a URL
    2. go to the URL in the browser, enter the code, and confirm access
    3. You’re in!

<aside> ▶️ A video that shows how the ssh connection and authentication should work is here.

</aside>

See also: ‣

đźšž User stories / journeys