Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Pasu(파수)

Pasu는 macOS용 SSH 키 관리 프로그램입니다. 개인키를 다른 프로그램에 넘기지 않고, 요청한 프로그램을 확인한 뒤 SSH 접속에 필요한 서명을 대신 만듭니다. 키마다 Touch ID 또는 로그인 암호 인증과 허용·거부 규칙을 설정할 수 있습니다.

사용자 안내서 · 빌드 안내서 · 실험 도구

시작하기

macOS 27이 필요합니다. 현재 공개 다운로드 파일은 제공하지 않습니다.

하고 싶은 일 준비물과 안내
서명된 앱 설치·사용 Pasu.app과 같은 버전의 소스 폴더가 필요합니다. 설치 방법을 따르세요. 개발 도구나 서명 인증서는 필요하지 않습니다.
소스에서 직접 빌드·시험 Go 1.26.6 이상과 Xcode 또는 Command Line Tools가 필요합니다. 개발용 빌드를 따르세요.
실제 키를 사용할 서명 앱 제작 자신의 Developer ID 인증서와 agent용 프로파일(Apple이 발급하는 권한 파일)이 필요합니다. 서명 앱 제작에서 조건을 먼저 확인하세요.

개발용 빌드는 자동 검사와 샘플 화면 확인에 사용할 수 있습니다. 실제 키를 관리하려면 정식 서명 앱이 필요합니다. 다른 개발자의 인증서를 사용한 설치·업데이트와 제작자별 자료 보존·전환을 구현했지만, 다른 팀의 유효한 인증서로 실제 서명·설치·업데이트하는 시험은 아직 하지 못했습니다.

서명된 앱을 준비했다면 소스 폴더의 dist/Pasu.app에 놓고 다음을 실행합니다.

./scripts/launchd.sh verify-app
./scripts/launchd.sh install

설치에는 관리자 인증이 필요합니다. 백그라운드 실행 승인을 요청하면 설치 안내에 따라 허용한 뒤 ./scripts/launchd.sh start를 실행합니다. ./scripts/launchd.sh status로 정상 실행을 확인한 이후 /Applications/Pasu.app을 열어 키를 만들고, SSH 설정 예시에 해당 공개키를 지정합니다. Pasu는 SSH 설정과 서버의 공개키 등록을 자동으로 바꾸지 않습니다.

설치된 앱은 한 번에 하나를 사용합니다. 제작자를 바꾸면 키·규칙·로그를 별도 폴더에 보존하고, 나중에 해당 제작자의 앱으로 돌아가 다시 사용할 수 있습니다. 제작자 전환을 참고하세요.

주요 기능

  • 여러 SSH 키의 이름, 활성 상태, 인증 방식과 규칙을 한 화면에서 관리합니다.
  • 처음 보는 서명 요청에는 요청한 프로그램을 보여 주고, 이번만 허용하거나 같은 요청을 계속 허용·거부할 수 있습니다.
  • 인증은 첫 인증 후 agent 종료까지, 매번 인증, 인증 없음 중에서 선택합니다. agent는 백그라운드에서 SSH 서명을 처리하는 서비스입니다.
  • 기본 전체 사슬 검사는 요청 프로그램이 어떤 프로그램들을 거쳐 실행되었는지 비교합니다. 책임 프로세스만으로 바꾸면 그 실행을 시작한 상위 프로그램을 기준으로 규칙을 적용합니다.
  • 관리 창을 닫아도 agent는 계속 실행합니다. 잠금 해제된 키를 다시 잠그거나 비활성화할 수 있습니다.
  • 키를 삭제하면 암호화된 키 파일은 휴지통으로 이동하고, 키를 여는 데 필요한 Keychain 항목은 삭제됩니다. 서버의 공개키는 별도로 제거해야 합니다.

보호 범위

Pasu는 요청 프로그램의 실행 경로와 코드 서명(제작자와 파일의 무결성을 확인하는 정보)을 검사합니다. 실행 계보가 완전하고 모든 구성원의 코드 서명이 신뢰되는 경우에만 영구 허용 규칙을 저장합니다. 요청을 처리하는 동안 실행 계보가 바뀌면 서명을 거부합니다.

개인키 파일은 passphrase라는 별도 암호로 암호화하고, 그 암호는 agent만 접근할 수 있는 macOS Keychain에 보관합니다. 인증 없음을 선택하면 허용된 SSH 요청에 Touch ID나 로그인 암호를 묻지 않으므로 보호 수준이 낮아집니다. 키 활성화·설정 변경·삭제 등에는 관리 인증이 계속 적용됩니다.

사용 시 다음 한계를 고려해야 합니다.

  • 실행 계보와 터미널 상태만으로 사람이 직접 입력했는지는 알 수 없습니다. 다른 앱이 허용된 터미널을 자동 조작하면 같은 실행 계보를 만들 수 있습니다.
  • 암호화된 개인키와 passphrase가 함께 유출되면 키를 복제할 수 있습니다. SSH 개인키 자체가 Secure Enclave 보안 하드웨어에 고정되는 방식은 아닙니다.
  • 같은 계정의 다른 프로그램이 agent를 중지하거나 로그를 삭제하는 것, 관리자 권한을 빼앗긴 상황까지 막지는 못합니다. 검사 사이에 프로세스가 바뀌었다가 원래대로 돌아오는 경우도 완전히 탐지하지는 못합니다.
  • 원격 프로그램의 신원은 검사하지 않습니다. SSH 설정의 ForwardAgent no를 유지하세요.

키 생성부터 업데이트·삭제·복구까지는 사용자 안내서, 검사 명령과 서명 조건은 빌드 안내서를 참고하세요.

라이선스

MIT License. 외부 Go 모듈의 라이선스는 각 모듈에 따릅니다.

About

A macOS SSH signing gatekeeper for AI coding agents, with per-request process and code-signing policy enforcement. AI 코딩 에이전트의 SSH 서명을 프로세스·코드서명 정책으로 통제합니다.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages