# Remote control your Rock64’s desktop by installing and configuring VNC and using a SSH tunnel with…

In need to remote control your Rock64’s desktop? Here is a small step by step guide based on a Rock64 running on Armbian Debian 5.65.

### How to install VNC and connect to it through a secure SSH tunnel?

Before continuing be sure to be a sudoer, that means that the user you’re using has the sudo privilege.

#### Installing the VNC server

First of all we’ll update the packages, install all the dependencies and install the VNC server:

```
sudo apt-get update  
sudo apt-get install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils  
sudo apt-get install tigervnc-standalone-server tigervnc-common
```

Once the VNC server has been installed, we need to set up the password for the future connection. Notice that we are not using sudo this time, because we want to connect with the current user:
```

vncserver
```

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1643374776056/1I7uuO5Hng.png)

Setting up the password and launching the VNC server

Choose a password that you’ll use to connect to your Rock64 through the VNC client. You can answer no to the view-only password question.

#### Configuring the VNC server

First we stop the running VNC instance with:

```
vncserver -kill :1
```

Then we create a configuration file to configure TigerVNC to use Xfce. Copy/paste the following lines

```
cat << EOF > ~/.vnc/xstartup  
#!/bin/sh  
unset SESSION\_MANAGER  
unset DBUS\_SESSION\_BUS\_ADDRESS  
exec startxfce4
EOF
```

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1643374778036/7k14f2ecW.png)

The > will be added automatically

Now we give the right permissions to this file:

```
chmod u+x ~/.vnc/xstartup
```

We can predifine the geometry and dpi that’ll be used with command. I suggest you to use copy and paste:

```
cat << EOF > ~/.vnc/config  
geometry=1920x1084  
dpi=96  
EOF
```

Starting the VNC server automatically. We are going to create a service that the system will start at boot time, please use the following commands, be sure to add your user name and whatch out for the apostrophes as Medium replace the chars with another one (have a look at the screenshot):

```
cat << EOF > ~/vncserver@.service  
\[Unit\]  
Description=Remote desktop service (VNC)  
After=syslog.target network.target

\[Service\]  
Type=simple  
User=***your user\_name\_goes\_here***  
PAMName=login  
PIDFile=/home/%u/.vnc/%H%i.pid  
ExecStartPre=/bin/sh -c **‘**/usr/bin/vncserver -kill :%i > /dev/null 2>&1 || :’  
ExecStart=/usr/bin/vncserver :%i -geometry 1440x900 -alwaysshared -fg  
ExecStop=/usr/bin/vncserver -kill :%i

\[Install\]  
WantedBy=multi-user.target  
EOF
```

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1643374779539/Ys0Rx_ZZ4.png)

The service has been created

Now we have to set the correct owner for the file and move it in the right folder:

```
sudo chown root:root vncserver@.service  
sudo mv vncserver@.service /etc/systemd/system/
```

We notify systemd that a new service is available by running this command:

```
sudo systemctl daemon-reload
```

And we enable the service, that means the Rock64 will start this service at boot time:

```
sudo systemctl enable vncserver@1.service
```

We start the VNC service by using this command:

```
sudo systemctl start vncserver@1.service
```

And verify that the service is successfully started:

```
sudo systemctl status vncserver@1.service
```

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1643374781138/tk7sruahE.png)

The service is running just fine

#### Setting up the SSH tunnel for Linux or macOS

You have to run the following command on any macOS or Linux that wants to connect to the Rock64 through the VNC by creating an SSH tunnel:

```
ssh -L 5901:127.0.0.1:5901 -N -f -l **rock64\_username** **your\_rock64\_ip**
```

Don’t forget to put in the previous command your username and the Rock64’s IP address.  
You’ll be prompted for the password you’ve just set previously with the command *vncserver*.

Now to connect, just download any VNC viewer ([TigerVNC](https://bintray.com/tigervnc/stable/tigervnc/1.9.0), [TightVNC](https://www.tightvnc.com/download.html), [RealVNC](https://www.realvnc.com/en/connect/download/viewer/), [VNC Viewer](https://www.realvnc.com/en/connect/download/viewer/chrome/)) and try to reach for:

```
localhost:5901
```

#### Setting up the SSH tunnel for Windows

You’ll need to use [PuTTY SSH client](https://www.putty.org/) in order to create the SSH Tunneling:

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1643374783923/dXucXvC3g.png)

On the left pane, go to *Connection*, choose *SSH* and click on *Tunnels*. The port you have to set is *5901* in the source port field and set your Rock64’s ip address, followed by *:5901*, in the *Destination* field:

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1643374785580/SSAysTIH1.png)

You can save these settings by going back to *Session.*

Open this session and now connect usingany VNC viewer ([TigerVNC](https://bintray.com/tigervnc/stable/tigervnc/1.9.0), [TightVNC](https://www.tightvnc.com/download.html), [RealVNC](https://www.realvnc.com/en/connect/download/viewer/), [VNC Viewer](https://www.realvnc.com/en/connect/download/viewer/chrome/)) trying to reach for:

```
localhost:5901
```

### Graphically check the health of your Rock64 with S-Tui

S-Tui is a graphical interface to let you monitor your Rock64 through SSH. It is pretty straightforward to install, just enter these commands:

```
sudo apt-get install lm-sensors  
sudo sensors-detect
```

Say yes to all questions and carry on with these commands that will install s-tui:

```
sudo apt-get install python3-pip stress  
sudo apt-get install python3-dev

sudo -H pip3 install --upgrade setuptools  
sudo -H pip3 install ez\_setup  
sudo -H pip3 install s-tui
```

Now it has been installed, to launch it:

```
sudo s-tui
```

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1643374787124/pGKUJNZyQ.png)

Too bad the Rock64 has no Power sensor

### Final word

Now it’d be easy to manage your Rock64 from your local computer using a graphical interface.

To configure your VNC server to start a display for more than one user, create the initial configuration and set up the password using the *vncserver* command. Don’t forget to create a new service file using a different port.
