Daniel Janus’s blog
SSHing to my reMarkable from anywhere
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.
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.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.
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 saysMulticastDNS=yes.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=yesRun:
systemctl restart systemd-resolved systemctl restart systemd-networkdAt this point, mDNS should be enabled over WLAN. Run:
resolvectl status wlan0It 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.1That
+mDNSmeans it should work, and the device should be reachable via the symbolic nameremarkable.local. If it says-mDNS, something is wrong.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 3We’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.
Done! At this point, just
ssh rmfrom anywhere. This should survive device restarts.