<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <id>tag:blog.danieljanus.pl,2019:category:remarkable</id>
  <title>Daniel Janus – reMarkable</title>
  <link href="http://blog.danieljanus.pl/category/remarkable/"/>
  <updated>2026-10-08T00:00:00Z</updated>
  <author>
    <name>Daniel Janus</name>
    <uri>http://danieljanus.pl</uri>
    <email>dj@danieljanus.pl</email>
  </author>
  <entry>
    <id>tag:blog.danieljanus.pl,2026-10-08:post:connecting-to-remarkable</id>
    <title>SSHing to my reMarkable from anywhere</title>
    <link href="http://blog.danieljanus.pl/connecting-to-remarkable/"/>
    <updated>2026-10-08T00:00:00Z</updated>
    <content type="html">&lt;div&gt;&lt;p&gt;I’ve been a &lt;a href="https://remarkable.com/"&gt;reMarkable 2&lt;/a&gt; user for a few years now. Bought on a whim, it has become an important part of my digital life, and I’ve recently &lt;a href="https://handwritten.danieljanus.pl/2026-06-01-edsger.html"&gt;jumped on its modding bandwagon&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;One of the reasons I like the rM is that it’s a pretty open system running Linux – you can &lt;code&gt;ssh&lt;/code&gt; 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.&lt;/p&gt;&lt;p&gt;But it’s a little unwieldy. What I’d really like is to sacrifice a little security for comfort, so that I can &lt;code&gt;ssh rm&lt;/code&gt; 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.&lt;/p&gt;&lt;p&gt;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 &lt;a href="https://remarkable.guide/tech/developer-mode.html"&gt;enable Developer Mode&lt;/a&gt;.&lt;/p&gt;&lt;ol start="1"&gt;&lt;li&gt;&lt;p&gt;Follow &lt;a href="https://remarkable.guide/guide/access/ssh.html#connecting-via-ssh"&gt;this guide&lt;/a&gt; to connect to your device via SSH. In particular, enable &lt;code&gt;rm-ssh-over-wlan&lt;/code&gt;. This will eliminate the need of a cable going forward.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;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.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;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.&lt;/p&gt;&lt;p&gt;Connect to the device and edit &lt;code&gt;/etc/systemd/resolved.conf&lt;/code&gt;. Uncomment the line that says &lt;code&gt;MulticastDNS=yes&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;It’s not sufficient to enable mDNS globally – you also need to set it up on a per-link basis. Edit &lt;code&gt;/etc/systemd/network/25-wlan0.network&lt;/code&gt;, and in the &lt;code&gt;[Network]&lt;/code&gt; section add the line:&lt;/p&gt;&lt;pre&gt;&lt;code&gt;  MulticastDNS=yes
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Run:&lt;/p&gt;&lt;pre&gt;&lt;code&gt;  systemctl restart systemd-resolved
  systemctl restart systemd-networkd
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;At this point, mDNS should be enabled over WLAN. Run:&lt;/p&gt;&lt;pre&gt;&lt;code&gt;  resolvectl status wlan0
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;It should respond with something like&lt;/p&gt;&lt;pre&gt;&lt;code&gt;  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
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;That &lt;code&gt;+mDNS&lt;/code&gt; means it should work, and the device should be reachable via the symbolic name &lt;code&gt;remarkable.local&lt;/code&gt;. If it says &lt;code&gt;-mDNS&lt;/code&gt;, something is wrong.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Update your SSH client config. On the computer, in &lt;code&gt;~/.ssh/config&lt;/code&gt;:&lt;/p&gt;&lt;pre&gt;&lt;code&gt;  Host rm
    HostName remarkable.local
    User root
    Port 22
    IdentityFile ~/.ssh/id_rsa_remarkable
    ServerAliveInterval 30
    ServerAliveCountMax 3
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;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.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Done! At this point, just &lt;code&gt;ssh rm&lt;/code&gt; from anywhere. This should survive device restarts.&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;</content>
  </entry>
</feed>
