Unha soa pulsación abonda para iniciar unha VPN do Mac, e hai dúas formas nativas de Apple de vinculala. Shortcuts dá a cada atallo a súa propia combinación de teclas e unha entrada na barra de menús. Automator dálle unha Quick Action cuxa tecla asignas en Axustes do Sistema, fóra do propio fluxo de traballo. As dúas vías envían a mesma solicitude ao mesmo servizo de conexión, así que as diferenzas que importan son onde vive a vinculación, que portas de permiso pasas e que inspeccionas cando a tecla parece non facer nada.

Todo o seguinte supón un servizo VPN de sistema existente que aparece en scutil --nc list. Se o teu provedor fornece un cliente de terceiros cuxa conexión nunca aparece aí, ningunha das dúas ferramentas pode controlalo mediante scutil, e necesitas a acción propia dese provedor.

As dúas vías chaman o mesmo servizo

Comeza pola lista, non pola aplicación. scutil --nc list mostra cada servizo gardado co seu estado e o seu nome de visualización exacto, e esa é a cadea que debes poñer entre comiñas na orde:

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

Esa liña é unha solicitude de activación. Volve axiña que a solicitude se acepta; non agarda un segundo factor, non informa de que o DNS privado está definido nin confirma que o servidor de ficheiros responde. Trátaa como o mesmo clic que farías no menú, sen o menú.

Tampouco hai ningún conmutador en scutil. Accións separadas para conectar e desconectar son máis doadas de razoar que unha tecla que inverte o estado, porque unha inversión premida durante un handshake pode deter unha conexión que nunca acabou de subir. Se queres unha soa tecla, ramifica sobre a saída de scutil --nc status "Office VPN" e decide explicitamente; non alternes ás cegas.

Shortcuts: unha tecla por acción, máis superficie de permisos

  1. Crea un atallo local en Shortcuts e pon o nome da tarefa, por exemplo Connect Office VPN.

  2. Engade Run Shell Script e pega a solicitude de inicio, co nome do servizo escrito literalmente en vez de tomado do portapapeis ou do texto seleccionado.

  3. Execútao unha vez desde o editor na túa propia sesión iniciada e completa o fluxo de autenticación normal, para que o sistema rexistre a aprobación que precisa.

  4. Abre os detalles do atallo e vincula unha combinación con Add Keyboard Shortcut. Apple documenta esta vinculación no seu manual de uso de Shortcuts; as combinacións que o sistema xa reserva non se poden tomar.

A vinculación viaxa co atallo, así que unha acción tamén pode sentar na barra de menús ou no Dock sen traballo extra. O prezo é un segundo permiso: Shortcuts non executará un script de shell ata que a scriptabilidade estea permitida nas súas preferencias, e nun Mac xestionado ese axuste pode estar bloqueado por política. Permíteo para atallos que escribises ou leses, non para un ficheiro importado con contido pouco claro.

A sincronización é a outra trampa. Un atallo copiado doutro Mac aínda leva o nome de servizo literal dese Mac. Nunha máquina onde o servizo ten outro nome, a tecla actívase, o script remata e nada che di por que.

Automator: menos pezas móbiles, unha tecla que tes que buscar

  1. En Automator escolle Quick Action, axusta o fluxo para que non reciba entrada en ningunha aplicación e engade Run Shell Script coa mesma orde, shell /bin/zsh.

  2. Gárdao cun nome que recoñezas nunha lista, porque é ese nome o que buscarás despois.

  3. Abre Axustes do Sistema, despois Teclado, despois Atallos de teclado, despois Servizos. Atopa o fluxo, márcao se non o está e rexistra unha combinación.

O fluxo invócase como servizo, así que a tecla vive na táboa de servizos e depende do nome do fluxo. Se despois renomeas o fluxo gardado, deberías reabrir ese panel para confirmar que a asignación sobreviviu. O atallo de servizo é global, o que é cómodo ata que choca cunha combinación que outra aplicación quere.

O que gañas é un artefacto máis pequeno e unha solicitude de permiso menos: un ficheiro de fluxo corrente, ningún elemento propio na barra de menús, ningún conmutador de scriptabilidade de que discutir. O que perdes é a atopabilidade, porque a acción só aparece na lista Servizos despois de que o fluxo se garde e o sistema o vexa unha vez.

Onde diverxen cando a tecla non fai nada

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

A táboa é torta a propósito: en dúas das súas cinco filas a solución é realmente diferente. A maioría das pulsacións fallidas redúcense ao mesmo par de fallos, un nome que non coincide co servizo gardado e unha solicitude tomada por unha conexión rematada, e cambiar de ferramenta non cura ningún dos dous.

As dúas vías tamén se negan a gardar credenciais. Unha combinación de teclas non pode converter un inicio de sesión interactivo nun desatendido, e pegar un contrasinal nun script é peor idea que escribilo unha vez ao día.

Escolle segundo estas tres condicións

Escolle Shortcuts cando queiras unha tecla por acción máis acceso pola barra de menús, e cando a scriptabilidade xa estea permitida na máquina. Escolle Automator cando queiras un só ficheiro para copiar entre Macs e ningún conmutador extra. Se a túa organización bloquea a scriptabilidade de Shortcuts, a Quick Action é a única das dúas que funcionará sen cambiar unha política, e iso decide a pregunta por ti.

Antes de confiar na tecla, percorre esta lista: confirma o servizo en scutil --nc list; preme a tecla desde un arranque en frío e observa scutil --nc status; abre o recurso para o que existe o túnel; e crea unha acción de desconexión separada e claramente nomeada. Non poñas a única acción de parada nunha sesión remota que necesitarías o túnel para acadar.

Seguinte paso: vincula só Connect, deixa Disconnect sen vincular durante un día e fixa en cantas veces vas ao menú de todos xeitos. Iso diche se a pulsación aforra tempo ou só agocha estado.

Artigos relacionados