Ważne: Dokończ konfigurację SSH przed wprowadzeniem tej zmiany
Ta konfiguracja wymusza, aby wszystkie połączenia Screen Sharing korzystały z SSH, w tym połączenia z urządzeń w tej samej lokalnej sieci.Po włączeniu tej opcji macOS będzie akceptować bezpośrednie połączenia Screen Sharing (VNC) wyłącznie pochodzące z samego Maca (localhost). Bezpośrednie połączenia VNC z innych urządzeń przestaną więc działać, niezależnie od tego, czy pochodzą z Internetu, VPN czy z lokalnej sieci.
Zanim przejdziesz dalej, upewnij się, że na Macu włączone jest Remote Login oraz że Screens jest skonfigurowane do używania Secure Connections, w tym Enable on Local Connections, zgodnie z opisem poniżej. W przeciwnym razie Screens nie będzie mogło się połączyć.
Począwszy od macOS 10.12 Sierra, macOS można skonfigurować tak, aby wbudowana usługa Screen Sharing akceptowała tylko połączenia pochodzące z samego Maca (localhost). Zapobiega to bezpośrednim połączeniom innych urządzeń z usługą Screen Sharing (VNC), w tym urządzeń w tej samej lokalnej sieci.
Screens nadal może się łączyć, najpierw nawiązując połączenie SSH z Makiem, a następnie tunelując przez SSH połączenie Screen Sharing. W rezultacie SSH staje się wymagane dla wszystkich połączeń Screens z tym Makiem, w tym połączeń lokalnych.
Zanim zaczniesz
Ponieważ po wprowadzeniu tej zmiany bezpośrednie połączenia Screen Sharing nie będą już akceptowane, Remote Login (SSH) musi być włączone na Twoim Macu.
- Otwórz System Settings.
- Przejdź do General > Sharing.
- Włącz Remote Login.
- Upewnij się, że Twoje konto użytkownika Maca ma przyznany dostęp.
Będziesz też musiał skonfigurować Screens i Screens Connect, jeśli są zainstalowane, tak aby używały bezpiecznych połączeń, zgodnie z opisem poniżej.
Konfiguracja Screens
Zanim ograniczysz Screen Sharing do połączeń lokalnych, edytuj zapisane połączenie w Screens i otwórz sekcję Security.
Włącz Secure Connections i upewnij się, że Enable on Local Connections również jest włączone.
To ważne: gdy Screen Sharing zostanie ograniczone do połączeń lokalnych, Screens musi używać SSH nawet wtedy, gdy Twoje urządzenie znajduje się w tej samej lokalnej sieci co Mac.
Konfiguracja Screens Connect
Jeśli korzystasz z Screens Connect, otwórz jego ustawienia, wybierz General i włącz Use Remote Login.
Zapewni to, że Screens Connect skonfiguruje zdalne połączenia do używania SSH zamiast łączenia się bezpośrednio z usługą Screen Sharing.
Ograniczenie Screen Sharing do połączeń lokalnych
Gdy Remote Login i powyższe opcje SSH są skonfigurowane, otwórz na Macu Terminal i wpisz:
sudo defaults write /Library/Preferences/com.apple.RemoteManagement.plist VNCOnlyLocalConnections -bool yes
Wpisz hasło do swojego konta użytkownika Maca, gdy zostaniesz o to poproszony.
Ustawienie VNCOnlyLocalConnections nakazuje macOS Screen Sharing akceptowanie bezpośrednich połączeń VNC tylko z localhost.
Oznacza to:
- Bezpośrednie połączenia VNC z Internetu przestaną działać.
- Bezpośrednie połączenia VNC przez sieci VPN, takie jak Tailscale lub ZeroTier, przestaną działać.
- Bezpośrednie połączenia VNC z innych urządzeń w Twojej lokalnej sieci przestaną działać.
- Screens musi łączyć się najpierw przez SSH i tunelować przez niego połączenie VNC, niezależnie od tego, czy połączenie jest zdalne, czy lokalne.
Cofnięcie zmiany
Jeśli chcesz, aby macOS Screen Sharing ponownie akceptował bezpośrednie połączenia sieciowe, otwórz Terminal i wpisz:
sudo defaults write /Library/Preferences/com.apple.RemoteManagement.plist VNCOnlyLocalConnections -bool no
Odczekaj kilka sekund, aż macOS zastosuje zmianę, zanim spróbujesz ponownie się połączyć.
Gdy zmiana zacznie obowiązywać, Screens może ponownie łączyć się bezpośrednio z usługą Screen Sharing (VNC), także przez lokalną sieć lub VPN, bez potrzeby korzystania z tunelu SSH.
Możesz wtedy wyłączyć ustawienia specyficzne dla SSH w Screens i Screens Connect, jeśli nie chcesz już używać bezpiecznych połączeń.
Ważne: gdy Screen Sharing zostanie ograniczone do localhost, Screens musi używać SSH dla każdego połączenia z tym Makiem, nawet gdy Twoje urządzenie znajduje się w tej samej lokalnej sieci lub Mac pojawia się w Nearby.
Bez Enable on Local Connections połączenia lokalne będą próbowały łączyć się bezpośrednio z usługą VNC i zakończą się niepowodzeniem.