Одного натискання достатньо, щоб запустити VPN на Mac, і Apple має два власні способи прив'язати його. Shortcuts дає кожній команді власну комбінацію клавіш і пункт у рядку меню. Automator дає Quick Action, клавішу для якої ви призначаєте в Системних параметрах, окремо від самого робочого процесу. Обидва шляхи надсилають той самий запит тій самій службі з'єднання, тому важливі відмінності полягають у тому, де живе прив'язка, крізь які брами дозволів ви проходите і що перевіряєте, коли клавіша начебто нічого не робить.

Усе нижче припускає наявну системну службу VPN, яку видно в scutil --nc list. Якщо ваш постачальник дає сторонній клієнт, з'єднання якого там ніколи не з'являється, жоден із двох інструментів не зможе керувати ним через scutil, і вам потрібна власна дія цього постачальника.

Обидва шляхи викликають ту саму службу

Почніть зі списку, а не з програми. scutil --nc list виводить кожну збережену службу з її станом і точним відображуваним ім'ям, і саме цей рядок треба взяти в лапки в команді:

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

Цей рядок — запит на активацію. Він повертається, щойно запит прийнято; він не чекає другого чинника, не повідомляє, що приватний DNS установлено, і не підтверджує, що файловий сервер відповідає. Ставтеся до нього як до того самого кліку, який ви зробили б у меню, лише без меню.

У scutil також немає перемикача. Окремі дії підключення й від'єднання обміркувати легше, ніж одну клавішу, що перевертає стан, бо перевертання, натиснуте під час рукостискання, може зупинити з'єднання, яке так і не піднялося до кінця. Якщо вам потрібна одна клавіша, розгалужуйтеся за виводом scutil --nc status "Office VPN" і вирішуйте явно; не чергуйте наосліп.

Shortcuts: одна клавіша на дію, більша поверхня дозволів

  1. Створіть у Shortcuts локальну команду і назвіть її за завданням, наприклад Connect Office VPN.

  2. Додайте Run Shell Script і вставте запит запуску, набравши ім'я служби буквально, а не взявши його з буфера обміну чи виділеного тексту.

  3. Запустіть його один раз із редактора у власному сеансі, у якому ви ввійшли, і завершіть звичайний плин автентифікації, щоб система записала потрібний дозвіл.

  4. Відкрийте відомості про команду і прив'яжіть комбінацію через Add Keyboard Shortcut. Apple документує цю прив'язку у своєму посібнику користувача Shortcuts; комбінації, які система вже зарезервувала, забрати не можна.

Прив'язка подорожує разом із командою, тому одна дія може без зайвої роботи сидіти і в рядку меню, і в Dock. Ціна — другий дозвіл: Shortcuts не запустить скрипт оболонки, доки в його налаштуваннях не дозволено написання скриптів, а на керованому Mac цей параметр може бути заблокований політикою. Дозволяйте це для команд, які ви самі написали або прочитали, а не для імпортованого файлу з неясним вмістом.

Синхронізація — інша пастка. Команда, скопійована з іншого Mac, досі несе буквальне ім'я служби того Mac. На машині, де служба називається інакше, клавіша спрацьовує, скрипт завершується, і ніщо не каже вам чому.

Automator: менше рухомих частин, клавіша, яку треба пошукати

  1. В Automator виберіть Quick Action, налаштуйте робочий процес так, щоб він не приймав ввід у жодній програмі, і додайте Run Shell Script з тією самою командою, оболонка /bin/zsh.

  2. Збережіть його під ім'ям, яке впізнаєте в списку, бо саме це ім'я ви шукатимете пізніше.

  3. Відкрийте Системні параметри, потім Клавіатуру, потім Комбінації клавіш, потім Служби. Знайдіть робочий процес, поставте позначку, якщо її немає, і запишіть комбінацію.

Робочий процес викликається як служба, тому клавіша живе в таблиці служб і залежить від імені робочого процесу. Якщо згодом перейменувати збережений робочий процес, варто знову відкрити цю панель і переконатися, що призначення вціліло. Службова комбінація глобальна, що зручно доти, доки вона не зіткнеться з комбінацією, яку хоче інша програма.

Ви отримуєте менший артефакт і на один запит дозволу менше: звичайний файл робочого процесу, без власного пункту в рядку меню, без перемикача написання скриптів, про який можна сперечатися. Ви втрачаєте помітність, бо дія з'являється в списку Служби лише після того, як робочий процес збережено і один раз помічено системою.

Де вони розходяться, коли клавіша нічого не робить

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

Таблиця навмисно крива: у двох із її п'яти рядків виправлення справді інше. Більшість невдалих натискань зводиться до тієї самої пари несправностей, імені, що не збігається зі збереженою службою, і запиту, прийнятого за завершене з'єднання, і зміна інструмента не вилікує жодної з них.

Обидва шляхи також відмовляються зберігати облікові дані. Комбінація клавіш не може перетворити інтерактивний вхід на необслуговуваний, а вставлення пароля в скрипт — гірша ідея, ніж набирати його раз на день.

Вибирайте за цими трьома умовами

Вибирайте Shortcuts, коли хочете клавішу на дію плюс доступ із рядка меню і коли написання скриптів на машині вже дозволено. Вибирайте Automator, коли хочете один файл для копіювання між Mac і жодного зайвого перемикача. Якщо ваша організація замикає написання скриптів у Shortcuts, Quick Action — єдина з двох, що працюватиме без зміни політики, і це вирішує питання за вас.

Перш ніж покладатися на клавішу, пройдіть цей список: підтвердьте службу в scutil --nc list; натисніть клавішу з холодного старту і спостерігайте за scutil --nc status; відкрийте ресурс, заради якого існує тунель; і створіть окрему, ясно названу дію від'єднання. Не ставте єдину дію зупинки на віддалений сеанс, до якого вам потрібен тунель.

Наступний крок: прив'яжіть лише Connect, залиште Disconnect неприв'язаним на день і зауважте, як часто ви все одно тягнетеся до меню. Це скаже вам, чи натискання економить час, чи лише приховує стан.

Схожі статті