All your screens are belong to us.
“Can Everybody See My Screen?”
Using a Raspberry Pi via ssh is the way I interact with these little computers sitting around, but sometimes it is nice to see the screen. Enter VNC.
Nearly every time I have set up a new Raspberry Pi and attempted to use the native Screen Sharing app to control them over VNC with my MacBook the first time I am treated to an Error Message reading:
The software on the remote computer appears to be incompatible with this version of Screen Sharing.
These steps need to be followed on the Raspberry Pi. This can be done over ssh or directly on the Pi itself.
Step 1 - Enable VNC on the Raspberry Pi
Open a terminal and enter
> sudo raspi-config
Interface Options hit enter Navigate to
VNC and enable.
Step 2 - Reboot the Pi
When changing configurations it is recommended to Reboot the Pi before continuing. The
raspi-config might prompt directly to reboot, but if it does not enter the following command to
reboot the Pi.
> sudo reboot -h now
Step 3 - VNC Credentials
Once rebooted, create vnc credentials that will be used to connect over VNC to the pi. You will be prompted to enter a password and verify it. This is the password that will be used to establish the VNC connection.
> sudo vncpasswd -service > sudo touch /etc/vnc/config.d/common.custom > cd /etc/vnc/config.d
Step 4 - Configure
custom.common file just created and add the line.
Step 5 - Restart the VNC server
Enter the following command to restart the vnc server on the Pi
> sudo systemctl restart vncserver-x11-serviced
Step 6 - Get the Raspberry Pi ip address
To obtain the ip address of the Pi, enter
in the terminal and look for the inet entry under the eth0 (if the Pi is connected over ethernet) or wlan0 (if the Pi is connected over wifi)
This ip will be formatted similar to 123.456.7.8
Step 7 - Open Screen Sharing on the Mac
Open the app called Screen Sharing and create a new connection and enter in the ip address for the Pi. You will be prompted for the VNC password set in Step 1, with the option to store the password for future connections.