When attempting to establish a VNC connection between Windows (using VNC Viewer 4.1.3) and MacOS Leopard 10.5.7, users frequently encounter the "no matching security types" error. This occurs despite:
- Both machines being on the same LAN
- Mac's built-in Screen Sharing working between Apple devices
- No additional VNC server software installed on the Mac
The root cause stems from encryption protocol differences between older MacOS versions and modern VNC clients. Leopard's native VNC server uses:
Authentication: System Password Encryption: 3DES (older standard)
Whereas VNC Viewer 4.x expects:
Authentication: VNC Password Encryption: AES (modern standard)
Option 1: Configure VNC Viewer Compatibility Mode
Modify the connection settings in UltraVNC/TightVNC:
1. Create a new connection 2. Set Security Types to "VNC Authentication" 3. Enable "Legacy Encoding" option 4. Set Color Depth to 16-bit
Option 2: Alternative Remote Access Solutions
For developers needing reliable Mac access from Windows:
// PowerShell script to test RDP alternatives $macIP = "192.168.1.100" Test-NetConnection $macIP -Port 5900 # VNC default Test-NetConnection $macIP -Port 3389 # Standard RDP
Recommended alternatives:
- Chrome Remote Desktop (cross-platform)
- TeamViewer (no port forwarding needed)
- Microsoft Remote Desktop (if Mac has RDP enabled)
The connection fails during the initial security negotiation phase. Packet capture reveals:
Client Offered Security Types: 2 (VNC Authentication) 19 (Tight Security) 5 (ARD) Server Response: SecurityResult: Failure (0x00000001) ErrorMessage: "no matching security types"
For sysadmins maintaining legacy systems:
# On MacOS Leopard terminal: sudo defaults write /Library/Preferences/com.apple.RemoteManagement \ VNCLegacyConnectionsEnabled -bool true sudo defaults write /Library/Preferences/com.apple.RemoteManagement \ LoadRemoteManagementMenuExtra -bool true
This forces the Mac to accept legacy VNC connections while maintaining system security.
The "no matching security types" error typically occurs when there's a protocol mismatch between VNC client and server. Mac's built-in Screen Sharing uses Apple's proprietary authentication protocol, while standard VNC viewers expect RFB protocol security types.
# Mac Screen Sharing uses these ports by default:
# TCP 5900 (VNC)
# TCP 3283 (Back to My Mac)
# TCP 80/443 (HTTP/HTTPS for web-based management)
Unlike Windows RDP, macOS doesn't include a native RDP server. However, these alternatives exist:
Option 1: Configure VNC Server Properly
For Leopard 10.5.7, modify your VNC server settings:
# In Terminal:
sudo defaults write /Library/Preferences/com.apple.RemoteManagement \
VNCLegacyConnectionsEnabled -bool true
# Then restart ARDAgent:
sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart \
-activate -configure -access -on -restart -agent -privs -all
Option 2: Use Compatible VNC Viewer
Try these viewers known to work with Mac Screen Sharing:
- TightVNC (Windows) with "None" or "VNC" authentication
- RealVNC Viewer (enable "Legacy" connection mode)
- Chicken of the VNC (Mac-specific)
Option 3: Alternative Remote Access Tools
For RDP-like experience on Mac:
# Microsoft Remote Desktop for Mac (connects to Windows)
# Apple Remote Desktop (paid, for Mac-to-Mac)
# NoMachine (NX protocol, cross-platform)
# TeamViewer (commercial but free for personal use)
Check these common configuration points:
- Ensure "Screen Sharing" is enabled in System Preferences → Sharing
- Verify the user account has remote access permissions
- Try connecting with both the computer name and IP address
- Check firewall settings (System Preferences → Security)
For technical users, edit the plist directly:
# Backup first:
sudo cp /Library/Preferences/com.apple.RemoteManagement.plist ~/Desktop/
# Edit the plist:
sudo defaults write /Library/Preferences/com.apple.RemoteManagement \
RestoreMachineState -bool false
sudo defaults write /Library/Preferences/com.apple.RemoteManagement \
VNCLegacyConnectionsEnabled -bool true
sudo defaults write /Library/Preferences/com.apple.RemoteManagement \
ScreenSharingReqPermEnabled -bool false
Remember to restart the service after changes:
sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart -restart -agent