code • words • emotions

Daniel Janus’s blog

SSHing to my reMarkable from anywhere

8 October 2026 •

I’ve been a reMarkable 2 user for a few years now. Bought on a whim, it has become an important part of my digital life, and I’ve recently jumped on its modding bandwagon.

One of the reasons I like the rM is that it’s a pretty open system running Linux – you can ssh into it out of the box. Just plug it in to your computer over USB, locate the login credentials on the device, and connect with them.

But it’s a little unwieldy. What I’d really like is to sacrifice a little security for comfort, so that I can ssh rm anytime and be welcomed with a root shell. I don’t want to concern myself with figuring out the device’s IP every time; I just want it to work as long as both the rM and the computer I’m connecting from are on the same network.

In this post, I’m noting down the steps so I can refer to them in the future. Please note that, while this works for me on my reMarkable 2 (using firmware v3.27.1.0), your mileage may vary. In particular, new reMarkables need you to enable Developer Mode.

  1. Follow this guide to connect to your device via SSH. In particular, enable rm-ssh-over-wlan. This will eliminate the need of a cable going forward.

  2. Make sure the computer you’re connecting from supports mDNS. macOS does out of the box (via Bonjour); and so do most modern Linux distros. When in doubt, install Avahi.

  3. Now we’ll set up mDNS on the reMarkable. It doesn’t have Avahi, but uses systemd, so we can use systemd’s built-in mDNS implementation.

    Connect to the device and edit /etc/systemd/resolved.conf. Uncomment the line that says MulticastDNS=yes.

  4. It’s not sufficient to enable mDNS globally – you also need to set it up on a per-link basis. Edit /etc/systemd/network/25-wlan0.network, and in the [Network] section add the line:

      MulticastDNS=yes
    
  5. Run:

      systemctl restart systemd-resolved
      systemctl restart systemd-networkd
    
  6. At this point, mDNS should be enabled over WLAN. Run:

      resolvectl status wlan0
    

    It should respond with something like

      Link 3 (wlan0)
          Current Scopes: DNS mDNS/IPv4 mDNS/IPv6
               Protocols: +DefaultRoute -LLMNR +mDNS -DNSOverTLS DNSSEC=no/unsupported
      Current DNS Server: 192.168.3.1
             DNS Servers: 192.168.3.1
    

    That +mDNS means it should work, and the device should be reachable via the symbolic name remarkable.local. If it says -mDNS, something is wrong.

  7. Update your SSH client config. On the computer, in ~/.ssh/config:

      Host rm
        HostName remarkable.local
        User root
        Port 22
        IdentityFile ~/.ssh/id_rsa_remarkable
        ServerAliveInterval 30
        ServerAliveCountMax 3
    

    We’ve put in the symbolic name, and also enabled SSH keepalive so that the connection doesn’t break if you run, say, xochitl from within it.

  8. Done! At this point, just ssh rm from anywhere. This should survive device restarts.