Other Commentary

Setting up VNC and sshd on my Steam Deck

So as I think I’ve mentioned before on this blog, whenever I want to do any serious rearranging of my mods on my Steam Deck, it’s awkward to do so directly on the Deck.

Problem at hand

Here are the reasons why trying to directly manipulate the Deck’s desktop is problematic for me.

For one thing, the screen is quite small, and my eyes aren’t as young as they used to be. I do sometimes have trouble reading things on that little screen.

For another, I do have a small Bluetooth keyboard that I use to interact with the device in Desktop mode on a fairly regular basis. This thing has a trackpad on the right end of it, and left and right click buttons as well, so I have mouse control. But I’ve also seen that the Deck has a devil of a time actually maintaining a connection to the damn thing. It’ll cut out on me for no apparent reason. I keep having to toggle back and forth between the 1, 2, and 3 buttons that are supposed to control how many pairings the keyboard can have.

I don’t know if this is the fault of the keyboard or the fault of the Deck. But I also know that I’ve had trouble with the Deck maintaining a Bluetooth connection to my gaming headset and my Nintendo Switch Pro controller, too. So at the moment I’m inclined to believe that this problem is Deck-side, not keyboard-side.

Which means that even with the keyboard in play, if I want to do any serious mod rearranging or any other kind of system administration on the device, it’s irritating and awkward.

The answer to this problem, therefore, was to try to find a way to remote into the Deck’s desktop mode from my computer.

I had been using an app called AnyDesk to do this. However, AnyDesk recently went to a subscription model, and the last version of it I updated to throttled how long it would let you keep a connection open if you’re not a paying subscriber. I’ve long been frustrated with how every little bit of software on the planet now wants to make you to subscribe to use it; that shit adds up, really fast. And given that I’m now unemployed and on a budget, I need to care more about how much money I spend every month.

So subscribing to AnyDesk was not an option. I needed an open source solution.

Fortunately, Linux has one. I’d already installed a Remmina client on the Deck. And on my MacBook, I have an Ubuntu Linux VM immediately available, which also has a Remmina client. So what I wanted to do was basically use Remmina in the Linux VM to open a VNC connection to the Deck.

Setting up VNC

This required me to set up the Deck to accept incoming VNC connection requests. And that, in turn, required me to do the following:

  1. Set a password for the Deck’s default user
  2. Install x11vnc on the Deck, and set a password for the VNC server
  3. Launch the VNC server
  4. Fire up a VNC connection in Remmina on the VM on my computer, including giving it the Deck’s user password and VNC server password

This worked beautifully. And now I have the ability to connect to the Deck as I want. 😀 Behold, my Deck’s desktop as viewed from Remmina, in the Linux VM on my Mac:

Screenshot of a Linux VM running on a MacBook, with a Remmina VNC connection open to the Desktop mode of a Steam Deck. Several icons, for running Skyrim, Oblivion, Morrowind, and ESO are visible, as well as other icons to run various other shell and scripting commands.

My main use case for this is, if I want to install new mods in Vortex, and/or create new mod profiles for games I have installed. (Right now, that’s Skyrim and Oblivion.)

The main resource I used for getting this done was the instructions on this page:

https://b.kate.pet/posts/mainsections/installing-vnc-on-the-deck/

This was super helpful. <3 And in my screenshot above, you can see the various icons on my desktop that resulted from following these instructions.

Many thanks to Kate for the sharing of this info!

Setting up sshd

However, that’s not the only use case I have for doing stuff on the Deck, so I also set up sshd so that I can just shell into the thing for tasks that don’t require GUI access. Like, say, editing a config file right quick.

So I also followed (most of) the instructions on this blog post as well:

https://shendrick.net/Gaming/2022/05/30/sshonsteamdeck.html

I used this page for setting a default password on my Deck (which I needed to do anyway to get VNC connectivity working), but also for launching sshd, enabling it to run on startup, and also securing it so that you can’t connect to my device as root. And that it will only accept connections from my known good ssh keys on my computer.

Many thanks to Seth for this info as well, since this was also super helpful.

End result

Now I can connect to the Deck either with VNC or with ssh. VNC I can do with the Remmina client into the Linux VM I have set up on my Mac; I don’t yet have a viable way to do this natively in macOS, just because I don’t have a known good VNC client. But doing it in the VM will be fine.

SSH connections, on the other hand, I can do straight out of the command line in macOS, so I don’t have to fire up a VM for that. Which, for something quick and simple like a file edit, is all I need.

Very happy with getting this problem solved, finally!

In addition to the authors of the two links above, I’d also like to give thanks and a shout out to all who answered the thread I posted about trying to solve this on Mastodon, which was here:

https://mastodon.murkworks.net/@annathepiper/110880767095554957

A few other solutions were proposed, so I’ll briefly summarize those here, in case anyone else who wants to go down this particular rabbit hole would like other options to consider:

  1. Installing TeamViewer (not confirmed whether this is doable on the Deck)
  2. Another blog post detailing steps for setting up ssh and/or sftp
  3. Warpinator for file transfers (can confirm this actually works, I do have Warpinator on my Deck and the Windows port of same on my Windows VM, though I myself just use Dropbox to chuck files back and forth between my Deck and my computer, because my laptop’s a Mac and this means I don’t have to fire up the Windows VM)
  4. PuTTY if all you want is an SSH client (can confirm this is also good, I’ve used PuTTY before but not in this context, not using it now because again, my computer is a Mac; I have SSH right in its command line. But this is a good idea if your main computer is a Windows box)
  5. Reddit thread about installing NoMachine (cannot personally confirm this, I didn’t pursue this since I got Remmina working)

Now, onward to hopefully solving the Bluetooth problem I mentioned above!

As Angela Highland, Angela is the writer of the Rebels of Adalonia epic fantasy series with Carina Press. As Angela Korra'ti, she writes the Free Court of Seattle urban fantasy series. She's also an amateur musician and devoted fan of Newfoundland and Quebecois traditional music.

2 Comments

  • thingsiplay

    Hi, this is a nice summary. I personally don’t have a need for VNC at the moment, because SSH/SFTP is sufficient in my case. But who knows in the future. It’s good to know this is actually possible. So will keep this in mind. One thing I wonder is about the latency. Bonus points for pointing out the resources where you got all of this. Very nice.

    One thought: Steam itself has a streaming option, Steam to Steam. Meaning you can actually play games, like the other online services, but its from your PC to the Steam Deck in example. It works well, because its in the same network and not over internet I think. My point is, that I think one can also stream the entire desktop. I did experiment in the past, so not sure about the details anymore. So one could “abuse” this as a VNC alternative maybe (if the actual entire desktop can be streamed)? As it is builtin into every Steam client. Need to test this out soon.

    • Angela Korra'ti

      Thanks for dropping a comment!

      Latency may be an issue here, I did notice a bit of lag when doing testing, but only a second or two. I will definitely be keeping an eye on performance. The use case for my doing the VNC here is updating my mods in Vortex, though, so I won’t be terribly concerned if I have a bit of lag.

      Re: streaming via Steam: I have in fact done this! But in the context of actual gaming, as opposed to just doing system admin stuff on the Desktop. I do have the Deck set up to be able to stream between my computer and my Mac.

      The two problems I’d see with this option for what I need desktop access for:

      1) I’ve had erratic luck with performance. The times I’ve tried it, for playing Skyrim Together, I’ve had the connection cut out more than once. Our house network is pretty solid, so I’m fairly sure this is an issue with the streaming functionality in particular vs. just some sort of general network issue. I haven’t been able to find a magic combo of settings to get it to work reliably enough for me to want to try this on a regular basis. I only break out streaming for the occasions when I’m playing Skyrim Together.

      2) I don’t know if it’s possible to initiate a stream and just go to the desktop, as opposed to opening a stream for an actual game. That’s an interesting question though, and if I find out it is possible, I’ll do a follow up post.