Едно натискане е достатъчно, за да стартира 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 няма да стартира shell скрипт, докато в предпочитанията му не е разрешено писането на скриптове, а на управляван 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 необвързан за един ден и отбележете колко често все пак посягате към менюто. Това ще ви каже дали натискането пести време, или само скрива състоянието.

Подобни статии