Jedno naciśnięcie wystarczy, by uruchomić VPN na Macu, a Apple daje dwie natywne drogi, by je związać. Shortcuts daje każdemu skrótowi własną kombinację klawiszy i wpis w pasku menu. Automator daje akcję Quick Action, której klawisz przypisujesz w Ustawieniach Systemowych, poza samym przepływem pracy. Obie drogi wysyłają to samo żądanie do tej samej usługi połączenia, więc liczą się różnice w tym, gdzie mieszka powiązanie, przez jakie bramy uprawnień przechodzisz i co sprawdzasz, gdy klawisz zdaje się nic nie robić.

Wszystko poniżej zakłada istniejącą usługę VPN systemu, która pojawia się w scutil --nc list. Jeśli twój dostawca daje klienta innej firmy, którego połączenie nigdy tam nie widnieje, żadne z narzędzi nie poprowadzi go przez scutil, i potrzebujesz własnej akcji tego dostawcy.

Obie drogi wołają tę samą usługę

Zacznij od listy, nie od aplikacji. scutil --nc list wypisuje każdą zapisaną usługę ze stanem i dokładną nazwą wyświetlaną, i to jest ten ciąg, który musisz ująć w cudzysłów w poleceniu:

/usr/sbin/scutil --nc start "Office VPN"

Ta linia to żądanie aktywacji. Wraca, gdy tylko żądanie zostanie przyjęte; nie czeka na drugi składnik, nie zgłasza ustawienia prywatnego DNS ani nie potwierdza, że serwer plików odpowiada. Traktuj ją jak to samo kliknięcie, które zrobiłbyś w menu, tylko bez menu.

W scutil nie ma też przełącznika. Osobne akcje łączenia i rozłączania łatwiej przemyśleć niż jeden klawisz odwracający stan, bo przełączenie wciśnięte podczas uzgadniania może zatrzymać połączenie, które nigdy nie doszło do końca. Jeśli chcesz jeden klawisz, rozgałęź się na wyniku scutil --nc status "Office VPN" i zdecyduj wprost; nie przełączaj na ślepo.

Shortcuts: jeden klawisz na akcję, większa powierzchnia uprawnień

  1. Utwórz lokalny skrót w Shortcuts i nazwij go od zadania, na przykład Connect Office VPN.

  2. Dodaj Run Shell Script i wklej żądanie startu, wpisując nazwę usługi dosłownie, a nie biorąc jej ze schowka czy z zaznaczonego tekstu.

  3. Uruchom go raz z edytora we własnej zalogowanej sesji i dokończ normalny przebieg uwierzytelniania, żeby system zapisał potrzebną zgodę.

  4. Otwórz szczegóły skrótu i przypisz kombinację przez Add Keyboard Shortcut. Apple opisuje to powiązanie w swoim podręczniku użytkownika Shortcuts; kombinacji, które system już rezerwuje, nie da się przejąć.

Powiązanie wędruje ze skrótem, więc jedna akcja może też siedzieć w pasku menu albo w Docku bez dodatkowej pracy. Ceną jest drugie uprawnienie: Shortcuts nie uruchomi skryptu powłoki, dopóki skryptowanie nie zostanie dozwolone w jego preferencjach, a na zarządzanym Macu to ustawienie może być zablokowane polityką. Zezwól na to dla skrótów, które sam napisałeś lub przeczytałeś, nie dla importowanego pliku o niejasnej treści.

Synchronizacja to druga pułapka. Skrót skopiowany z innego Maca nadal niesie dosłowną nazwę usługi tamtego Maca. Na maszynie, gdzie usługa nazywa się inaczej, klawisz zadziała, skrypt się skończy, a nic nie powie ci dlaczego.

Automator: mniej ruchomych części, klawisz, którego musisz poszukać

  1. W Automatorze wybierz Quick Action, ustaw przepływ tak, by nie przyjmował wejścia w żadnej aplikacji, i dodaj Run Shell Script z tym samym poleceniem, powłoka /bin/zsh.

  2. Zapisz go pod nazwą, którą rozpoznasz na liście, bo to tej nazwy będziesz później szukać.

  3. Otwórz Ustawienia Systemowe, potem Klawiaturę, potem Skróty klawiaturowe, potem Usługi. Znajdź przepływ, zaznacz go, jeśli nie jest zaznaczony, i zapisz kombinację.

Przepływ jest wywoływany jako usługa, więc klawisz mieszka w tabeli usług i zależy od nazwy przepływu. Jeśli później zmienisz nazwę zapisanego przepływu, powinieneś otworzyć ten panel ponownie i potwierdzić, że przypisanie przetrwało. Skrót usługi jest globalny, co jest wygodne, dopóki nie zderzy się z kombinacją, którą chce mieć inna aplikacja.

Zyskujesz mniejszy artefakt i jedno pytanie o uprawnienia mniej: zwykły plik przepływu, żadnej własnej pozycji w pasku menu, żadnego przełącznika skryptowania do dyskusji. Tracisz wykrywalność, bo akcja pojawia się na liście Usługi dopiero po zapisaniu przepływu i zobaczeniu go raz przez system.

Gdzie się rozmijają, gdy klawisz nic nie robi

SymptomShortcuts routeAutomator route
Key fires, nothing connectsService name mismatch; re-read scutil --nc listSame name mismatch inside the shell action
Key never fires anywhereBinding collides with a reserved or app-level combinationService entry unticked in Keyboard Shortcuts, or renamed
An authorization dialog appears every timePrompt comes from the VPN type, not from ShortcutsSame prompt, same cause; the script runs as you
Connects, no reachable resourceReadiness not checked after the requestIdentical gap, identical fix
Works only inside one appRare; check where the shortcut is made availableWorkflow set to receive input from a specific app

Tabela jest krzywa celowo: w dwóch z jej pięciu wierszy poprawka jest naprawdę inna. Większość nieudanych naciśnięć sprowadza się do tej samej pary błędów, nazwy niezgodnej z zapisaną usługą i żądania wziętego za ukończone połączenie, a zmiana narzędzia nie leczy żadnego z nich.

Obie drogi odmawiają też przechowywania danych logowania. Kombinacja klawiszy nie zamieni logowania interaktywnego w bezobsługowe, a wklejanie hasła do skryptu to gorszy pomysł niż wpisanie go raz dziennie.

Wybierz według tych trzech warunków

Wybierz Shortcuts, gdy chcesz klawisz na akcję plus dostęp z paska menu i gdy skryptowanie jest już na maszynie dozwolone. Wybierz Automator, gdy chcesz jeden plik do kopiowania między Macami i żadnego dodatkowego przełącznika. Jeśli twoja organizacja blokuje skryptowanie w Shortcuts, Quick Action jest jedyną z dwóch, która ruszy bez zmiany polityki, i to rozstrzyga pytanie za ciebie.

Zanim zaufasz klawiszowi, przejdź tę listę: potwierdź usługę w scutil --nc list; naciśnij klawisz z zimnego startu i obserwuj scutil --nc status; otwórz zasób, dla którego istnieje tunel; i utwórz osobną, jasno nazwaną akcję rozłączania. Nie kładź jedynej akcji zatrzymania na sesji zdalnej, do której potrzebowałbyś tunelu.

Następny krok: przypisz tylko Connect, zostaw Disconnect nieprzypisany na jeden dzień i zanotuj, jak często i tak sięgasz do menu. To powie ci, czy naciśnięcie oszczędza czas, czy tylko ukrywa stan.

Powiązane artykuły