Run Tailscale on macOS Mojave 10.14

I have a photo tool that will not run on any macOS newer than Mojave, so I dug out an old Mac mini and got it up and running with the latest updates for 10.14. This is setup at our Headquarters location and I need to access this Mac mini, named Toolbox, remotely.

This calls for Tailscale. I’m already using Tailscale as a VPN to our HQ main server. However, I didn’t want to have to remote into the HQ server, then remote over to Toolbox from there. I wanted to join Toolbox directly to Tailscale so I could attach to it remotely as needed.

Seems straightforward, right? Of course, it’s not. Two issues presented themselves to me.

  1. The GUI version of Tailscale doesn’t work with this old version of macOS
  2. I created my Tailscale account using “Sign In With Apple”, which I discovered doesn’t work with Safari on Mojave (due to the inability to be prompted for the security code)

I was able to get this solved with a combination of the non-GUI instructions provided by Tailscale and the ability to authenticate a new device using a QR code. Below, you can read exactly the steps I took to get this working.

Install the Go programming language and the CLI versions of Tailscale (here I’m specifiying the version I am running successfully on Mojave):

brew install go
go install tailscale.com/cmd/tailscale{,d}@1.76.3

Once those installations complete, login to Tailscale:

$HOME/go/bin/tailscale login

You’ll get a link displayed in the Terminal that you need to open in your browser. It’ll look something like this:

To authenticate, visit:

    https://login.tailscale.com/z/{14-character-string}

Success.

Because Apple login isn’t fully supported in this older browser and OS, I couldn’t choose the “Sign in with Apple” option. Fortunately, we can use a QR code to authenticate the device.

Image description

After displaying the QR code, I used my phone to authenticate the device without issue.

Next up, we want to make sure Tailscale loads at system launch.

sudo $HOME/go/bin/tailscaled install-system-daemon
sudo launchctl unload -w /Library/LaunchDaemons/com.tailscale.tailscaled.plist
sudo launchctl load -w /Library/LaunchDaemons/com.tailscale.tailscaled.plist

The unload command may give you an error that the LaunchDaemon hasn’t been loaded yet, but you can safely ignore that as you load it in the following command.

Finally, we manually start Tailscale for good measure:

$HOME/go/bin/tailscale up

Et voilà, I can now remote into Toolbox after joining my Tailscale from anywhere in the world.

This article was updated on 2024-11-05

I'm nabeards.

I'm a full stack JavaScript developer.

I travel full time, a.k.a., Professional Wanderer, a.k.a., Digital Nomad.