키를 한 번 누르면 Mac VPN이 시작되며, Apple은 그것을 묶는 두 가지 자체 방식을 제공합니다. Shortcuts는 각 단축어에 고유한 키 조합과 메뉴 막대 항목을 줍니다. Automator는 Quick Action을 주며, 그 키는 시스템 설정에서 지정합니다. 워크플로 자체와는 분리되어 있습니다. 두 경로 모두 같은 요청을 같은 연결 서비스로 보내므로, 중요한 차이는 연결이 어디에 사는지, 어떤 권한 관문을 지나는지, 키가 아무것도 하지 않는 것처럼 보일 때 무엇을 확인하는지입니다.

아래의 모든 내용은 scutil --nc list에 나타나는 기존 시스템 VPN 서비스를 전제합니다. 공급자가 제공하는 타사 클라이언트의 연결이 거기에 전혀 나타나지 않는다면, 두 도구 중 어느 것도 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를 고르십시오. Mac 사이에 복사할 파일 하나만 원하고 추가 토글이 필요 없다면 Automator를 고르십시오. 조직이 Shortcuts의 스크립트를 잠근다면 정책 변경 없이 작동하는 것은 둘 중 Quick Action뿐이며, 그것이 답을 정해 줍니다.

키에 의존하기 전에 이 목록을 훑으십시오. scutil --nc list에서 서비스를 확인하고, 콜드 스타트에서 키를 눌러 scutil --nc status를 지켜보고, 터널이 존재하는 자원을 열고, 별도로 이름이 분명한 해제 동작을 만드십시오. 유일한 중지 동작을 터널이 있어야 닿을 수 있는 원격 세션에 두지 마십시오.

다음 단계: Connect만 묶고 Disconnect는 하루 동안 묶지 않은 채 두고, 그래도 메뉴로 손이 가는 횟수를 적어 두십시오. 키 입력이 시간을 아끼는지 아니면 상태를 숨기기만 하는지 알려 줄 것입니다.

관련 글