MSL Wiki
MSL on GitHub

Connecting over SSH

One command, nothing to configure — for scp, VS Code Remote-SSH, and anything else that speaks SSH.

Chapter 5 of 202 min read
On this page 3 sections

The Connect over SSH card on the Overview tab gives every instance a ready-made SSH shortcut. MSL does all the setup; you get one command:

shell
ssh msl-work

It works anywhere SSH does — a terminal, scp, rsync, and editors like VS Code's Remote-SSH, which will list msl-work as a host.

What MSL sets up#

  1. Its own key, at ~/Library/Application Support/MSL/ssh/msl_ed25519. MSL never touches your personal ~/.ssh keys — a key MSL owns can be replaced without affecting anything else you use.
  2. The key inside Linux, for your Linux account — so ssh logs you in as you. (Before the distro has an account, it uses the built-in msl one; Set up again switches it once yours exists.)
  3. The SSH server inside Linux, started.
  4. A shortcut — a Host msl-work entry in ~/.ssh/config. Nothing else in that file is touched.

Then it checks the address actually answers before calling it ready.

Automatically#

Set this up automatically when an instance starts (on by default, and it applies to all instances) does all of the above whenever an instance starts, so the shortcut is just there. Turn it off and each card offers Set up now instead, which works while the instance is running.

Reading the card#

You seeMeans
"Not set up yet"Nothing's been done. Set up now needs the instance running.
"Setting up…"Working on it.
Green tick, "Ready."Checked just now and answering. Open Terminal connects in Terminal.app.
Grey clock, "Last known details…"From the last time it ran — it's checked again once the instance is up.
Orange triangle, "isn't answering on port 22"Set up, but not reachable right now.

Under the command: the Address (user and IP), the Key path, and the Host key fingerprint. Copy copies the command; Copy all details copies everything; Set up again redoes it all.

From the command line, msl ssh work connects — setting everything up first if it's the first time — and msl ssh work --print just prints the command.