52

I'm trying to get remote screen access to my Raspberry Pi (running Raspbian) with a Mac OS X client.

Here's what I've got:

  • I ran 'raspbian-config' and used it to enable the VNC server.
  • The desktop on the raspberry-pi shows that VNC server is running. ps says it's vncserver-x11-core.
  • The raspberry pi shows up as a shared screen on my Mac in the Finder.
  • When I click the "Share Screen" button on the Mac, I get a dialog with this error message:

    The software on the remote computer appears to be
    incompatible with this version of Screen Sharing.
    

My Mac is running 10.9 (Mavericks?), so it's a bit old...

What are my options?

  • Is there a config option on the Pi that I can tweak? That's my preferred approach.
  • Failing that, will switching to tightvncserver help?
  • It feels like a bit of overkill to update my Mac for this problem, but would it help?

6 Answers 6

21

Either install the RealVNC viewer on your Mac, or change the authentication type on the server to "VNC Authentication" and set a suitable VNC password.

The Mac viewer doesn't support RealVNC's system authentication, which allows you to login as a system user.

5
  • 1
    This worked. To add a bit of detail: the VNC server on the Raspberry Pi has a GUI from which you can get to various options. One of the options is for authentication, and I fixed it by changing "UNIX password" to "VNC password". Commented Dec 30, 2016 at 18:34
  • Andrew's solution work, but also be sure to have encryption 'off'. Commented Jan 20, 2017 at 22:33
  • The best way is realvnc.com/download/vnc/macosx but if you really want to use built-in tools you must on the Raspberri Pi set the VNCServer Options in order not to use a the UNIX username / password.
    – llange
    Commented Mar 4, 2017 at 6:13
  • realvnc.com/download/viewer/macosx is currently more proper link Commented May 4, 2017 at 19:11
  • 3
    But RealVNC does support standard VNC authentication.... see my note below. Simple.. no added software, no added problems ;-) less is more.
    – Cerniuk
    Commented Nov 19, 2017 at 19:38
59

Headless VncServer Configuration

If you need to configure accessing the pi with osx's Screen, but only have headless access to the pi, you can use a vnc config file.

  1. Enable VNC:
    sudo systemctl enable vncserver-x11-serviced
  2. Generate the password you wish to use in screen with vncpasswd -service
    sudo vncpasswd -service
  3. Create and edit the following file here: /etc/vnc/config.d/common.custom
  4. Enter the following config: Authentication=VncAuth
  5. Restart the vnc service:
    sudo systemctl restart vncserver-x11-serviced
  6. Open Screen on your mac with the instructions below, and use the password you provided to vncpasswd.

If you need to monitor the logs for vncserver, you can use journalctl:

sudo journalctl -u vncserver-x11-serviced.service

Other parameters you can use with VncServer configs are described here: https://www.realvnc.com/en/connect/docs/server-parameter-ref.html

7
  • 3
    Slightly easier: use vncpasswd -service to provide a password, and the only line that's needed in the config file is Authentication=VncAuth.
    – jrc
    Commented Sep 8, 2019 at 18:44
  • @jrc neat! I'll try that out next time I'm up in a pi and edit this down.
    – aaronP
    Commented Sep 9, 2019 at 19:06
  • 3
    If you ended up with Cannot Currently Show the Desktop then just follow this guide tomshardware.com/how-to/…
    – andilabs
    Commented Jan 27, 2021 at 16:04
  • 1
    Instead of sudo raspi-config you can do sudo systemctl enable vncserver-x11-serviced and skip rebooting. Commented Feb 20, 2021 at 18:08
  • Thanks @DennisWilliamson! I restart it in step 6.. don't know why I didn't think to enable it the same way. : P
    – aaronP
    Commented Feb 22, 2021 at 15:11
23

The best part of using your Mac to access the Raspberry Pi's screen is that you don't need to install anything on the Raspberry Pi or the Mac. (KISS rule applied!)

This is good because software like tightvncserver requires Java to run on the Pi. Java is handy but it is a processor pig and should be avoided to keep your project running as fast as possible; and if your Pi is completely wireless, to ensure longest battery life. I use a Raspberry Pi Zero Wi-Fi (rbp0w) which is a natural for going completely wireless.

Since you are looking for this you are likely new to the Pi and probably don't know where the settings are or maybe even what "VNC" is...

So...here is a step by step "new Pi user" guide to using the standard system native VNC client on macOS called Screen Sharing with your Raspberry Pi's native RealVNC Server, perform the following configuration:

1) These instructions presume that you installed the operating system NOOBS from the RaspberryPi site:

https://www.raspberrypi.org/downloads/noobs/

2) Open the RealVNC Server configuration interface by clicking on the menu bar icon:

enter image description here

3) On the VNC Server window, click the hamburger menu, and select "Options":

enter image description here

4) Select "Security" if not already selected and set Encryption to "Prefer off" and Authentication to "VNC password". This assumes your device is behind a firewall on a secure network... hence encryption can be safely turned off to ensure compatibility.

enter image description here

5) Set up a "Standard user" with a password of 8 characters or less

enter image description here

6) Then open "Screen Sharing" on your Mac, and from the "Connection" menu select "New" and type in the IP address of your Pi:

enter image description here

7) when challenged, enter the password you setup at the Pi in step 5. Make life easy on yourself and save the password in the Keychain too...

enter image description here

8) Press connect and you are in!

enter image description here

3
  • 2
    This should be the accepted answer. The only thing I'd add is that for headless setup, the command-line approach is vncserver Authentication=VncAuth :0 (Note: :0 for the default port after doing sudo systemctl stop lightdm or connect to port raspberrypi.local:5902 if you set it up on say session :2)
    – jdonald
    Commented Jul 22, 2019 at 18:35
  • I got "The software on the remote computer appears to be incompatible with this version of Screen Sharing" still, until I rebooted the Pi after step 5.
    – Ashley
    Commented Dec 24, 2020 at 0:45
  • Doing this in 2024, using an older Mac running macOS 10.13, connecting to a Pi 3 running Bullseye, I again saw "The software on the remote computer appears to be incompatible with this version of Screen Sharing". On the Pi, in the Standard user password box in step 5 in the instructions above, a checkbox "Allow connections from legacy VNC Viewer users" has been added. Turning that on fixed my issue.
    – Ashley
    Commented Sep 1 at 15:01
7

For RealVNC you NEED to use their proprietary viewer. (It may be possible to use the macOS screen sharing with additional software, but X11 has not been included on the Mac for some years.)

You can use tightvncserver; I use this and start session with open vnc://[email protected]:5901 on the Mac (change to your IP or use raspberrypi.local).

RealVNCneeds the GUI on the Pi to be running (you can start manually, but, if so why bother) and shares the same screen.

tightvncserver starts a new screen (which IMO is better, as the sessions can have different resolutions).

NOTE RealVNC and tightvncserver are incompatible, and you can only have 1 on your Pi.

1
  • This answer is very apropos now that MacOS is Catalina and Pi OS ships with realVNC. Installing tightvncserver (sudo apt-get install tightvncserver) removes the realVNC automatically. I configure for larger screen with: tightvncserver :1 -geometry 1920x1080 -depth 24), and splat-K remote desktop to vnc://ip.ip.ip.ip:5901 gets me to my RPi Commented Aug 9, 2020 at 14:43
2

Andrew Wedgbury and Richard Barnette comments work for OS X 10.12.5 Screenshare.

You do not HAVE to turn encryption off. But you can as Jon recommends

Instead add a new user as type Administrator to VNC Server on raspberry pi (ver: 4.9.35)

  1. Click VNC toolbar icon
  2. Click VNC Server Hamburger icon for drop down menu
  3. Click on Options (may need to close message window)
  4. Select Authentication drop down and set to VNC password and click apply.
  5. Click the link Users & Permissions in "VNC password" section below.
  6. Click Add button
  7. Select Administrator user from user drop down.
  8. Set Password and click OK
  9. Click OK to exit options.

On OS X Sharescreen and enter raspberry.local (hostname.local), enter password when prompted.

1
  • With a fairly large scale OS on a very small scale processor, every bit of processor conservation helps. The Pi is very slow (albeit "laggy") through a VNC connection and encryption makes it worse. Since my network is encrypted I am not inclined to suffer the PI processor. Encryption is a great tool but like antibiotics, should be applied sparingly and with Intellegence.
    – Cerniuk
    Commented Nov 19, 2017 at 19:37
0

The answer from Cerniuk (KISS rule applied ...!) did the trick for me on OSX Ventura, and using Go>connect to server...> vnc://rpi.ip.add:5901 to a PI 3B+, it works fine and contrary to what is said, you don't really "NEED" the Real VNC viewer.

"I agree this should be the accepted answer."

Not knowing any better I also had, at the time, installed Real VNC viewer, but now it will go bye-bye ...

The game changer for me occurred after I did this 'double clicking' on Standard user (user), this is a rather obscure step IMHO that is easy to miss.

imageon OS

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.