소개
Win Gpg Agent는 Windows 10/11 환경에서 GnuPG 도구와 함께 사용하여 GPG 및 SSH 키 관리를 더 쉽게 만들어주는 유틸리티 모음입니다. 이 프로젝트는 WSL(Windows Subsystem for Linux), Cygwin/MSYS2, 그리고 Windows 네이티브 OpenSSH 등 여러 개발 환경 간의 키 관리 호환성을 목표로 제작되었습니다. 현재 프로젝트는 더 이상 개발이 진행되지 않는 단계에 있습니다.
상세정보
프로그램 소개
Win Gpg Agent는 Windows에서 GnuPG(`gpg-agent`)를 보다 효율적으로 사용하기 위해 설계된 도구 모음입니다. 주요 기능은 Windows 네이티브 SSH, Cygwin/MSYS2 환경, 그리고 WSL(Windows Subsystem for Linux) 간에 SSH 및 GPG 키를 안전하고 투명하게 공유하는 것입니다. 이 프로젝트는 코드 서명과 같은 보안 작업을 위해 GPG 키를 중앙 집중적으로 관리하려는 개발자와 시스템 관리자를 위해 만들어졌습니다.
주요 기능
- WSL 환경 지원: Windows 측의 Assuan 소켓과 AF_UNIX 소켓을 WSL2 환경의 소켓으로 변환하여, WSL 내에서 GPG 및 SSH 에이전트를 원활하게 사용할 수 있도록 돕습니다.
- 멀티 플랫폼 SSH 클라이언트 지원: Windows 네이티브 OpenSSH와 Cygwin/MSYS2 기반의 SSH 도구들 모두에서 하나의 키 볼트를 공유하여 사용할 수 있습니다.
- GUI 기반 에이전트 관리: `agent-gui.exe`는 시스템 트레이 애플릿으로 작동하여 `gpg-agent`의 수명 주기를 관리하고, 필요한 환경 변수(`SSH_AUTH_SOCK` 등)를 자동으로 설정합니다.
- Windows 자격 증명 관리 통합: `pinentry.exe`는 GnuPG 비밀번호 입력 시 Windows 자격 증명 관리자(Credential Manager)와 통합되어 비밀번호를 안전하게 저장하고 관리할 수 있습니다.
다운로드 및 설치 방법
가장 간단한 설치 방법은 패키지 관리자인 Scoop을 사용하는 것입니다. PowerShell에서 아래 명령어를 실행하여 extras 버킷을 추가하고 설치할 수 있습니다.
- Scoop을 사용한 설치: `scoop bucket add extras` 및 `scoop install win-gpg-agent`
- 업데이트: `scoop update win-gpg-agent`
수동 설치의 경우, GitHub 릴리스 페이지에서 최신 zip 파일을 다운로드하여 원하는 폴더에 압축을 풀면 됩니다. PowerShell을 사용하여 자동으로 최신 버전을 다운로드하고 압축을 푸는 스크립트도 공식 문서에 제공됩니다.
기본 사용법
설치 후에는 시스템 트레이에서 `agent-gui.exe`를 실행해야 합니다. 프로그램은 GnuPG 설치 경로를 자동으로 찾아 `gpg-agent`를 적절한 매개변수로 시작합니다. WSL 사용자는 `WSL_AGENT_HOME` 환경 변수를 참조하여 WSL 측에서 소켓 경로를 설정할 수 있습니다. Cygwin/MSYS2 환경에서는 `SSH_AUTH_SOCK` 환경 변수를 Cygwin 소켓 파일로 지정해야 합니다.
- Windows 네이티브 `ssh-agent` 서비스를 사용하는 경우, `Stop-Service ssh-agent` 및 `Set-Service -StartupType Disabled ssh-agent` 명령어로 해당 서비스를 중지해야 할 수 있습니다.
이런 경우에 유용합니다
이 도구는 여러 환경(Windows, WSL, 리눅스 등)에서 동일한 GPG/SSH 키를 사용하여 Git 커밋 서명이나 SSH 로그인을 수행해야 하는 개발자에게 유용합니다. 특히 GnuPG를 통한 코드 무결성 관리가 필요한 프로젝트에 참여할 때 효과적입니다. 또한, WSL2 환경에서 Windows 측에 저장된 비밀키를 안전하게 접근해야 할 때 유용한 솔루션을 제공합니다.
지원 환경 및 시스템 요구사항
- 운영체제: Windows 10 빌드 1809 이상 또는 Windows 11 (AF_UNIX 소켓 지원 기능이 필수적입니다)
- 의존성: GnuPG(GPG4Win이 아닌 기본 GnuPG 도구)가 별도로 설치되어 있어야 합니다.
- WSL2 지원: WSL2를 사용하는 경우 `sorelay.exe`와 같은 추가 구성 요소가 필요할 수 있습니다.
최신 버전 및 업데이트
제공된 증거에 따르면 2022년 9월에 프로젝트 개발이 공식적으로 중단되었습니다. 따라서 새로운 기능 추가나 버그 수정은 이루어지지 않을 것으로 보이며, 현재 1.6.3 버전이 마지막 공개 버전으로 기록되어 있습니다.
제한 사항 및 확인 사항
- 프로젝트 중단: 개발자는 보안 우려와 유지보수의 어려움을 이유로 2022년 9월부터 이 프로젝트의 개발을 중단한다고 발표했습니다.
- 보안 주의사항: WSL 환경의 특성상, Windows 사용자 자격 증명으로 상호작용이 이루어집니다. 원격으로 WSL 환경에 로그인할 수 있게 설정하면 gpg-agent에 저장된 SSH 키에 접근될 수 있으므로 주의가 필요합니다.
- WSL1/WSL2 차이점: WSL1과 WSL2는 서로 다른 소켓 번역 메커니즘을 사용합니다. WSL2에서는 `socat`과 같은 추가 도구가 필요할 수 있습니다.
FAQ
- Q: Win Gpg Agent는 현재도 유지보수되나요?
A: 아니요, 개발자는 2022년 9월에 프로젝트 개발을 중단한다고 발표했습니다. 보안 문제와 복잡성 때문에 OpenSSH 및 기타 대안을 추천하고 있습니다. - Q: GPG4Win과 함께 사용할 수 있나요?
A: 공식 문서에서는 GPG4Win이 아닌, 플랫폼 공통 코드베이스로 빌드된 기본 GnuPG 도구의 사용을 명시적으로 권장하고 있습니다. - Q: 인터넷 연결이 필수적인가요?
A: 설치 후 실제 사용 시 인터넷 연결은 필수적이지 않으나, 초기 설치 과정에서 패키지 관리자나 GitHub 릴리스에서 파일을 다운로드할 때는 인터넷이 필요합니다.
시스템 요구사항
Windows 10 버전 1809 이상 또는 Windows 11이 필요합니다. GnuPG 도구를 별도로 설치해야 합니다. WSL2 사용 시 추가 구성 요소(socat 등)가 필요할 수 있습니다.


