소개
Gopass CLI는 터미널 환경에서 사용할 수 있는 오픈소스 비밀번호 관리자입니다. pass와 호환되는 drop-in 대체 도구로, 기본적으로 GPG 암호화와 Git 버전 관리로 자격 증명을 안전하게 보관합니다. Linux, macOS, BSD, Windows 등 크로스플랫폼에서 동일한 사용 경험을 제공하며, 분산된 팀 환경과 오프라인 에어갭 머신에서도 동작하도록 설계된 점이 특징입니다.
상세정보
GPG 기반 엔드 투 엔드 암호화
gopass는 각 비밀번호 항목을 GPG로 암호화하여 로컬에 저장하며, 개인 키가 외부로 빠져나가지 않도록 설계되어 있습니다. 기본 암호화 방식인 GPG 외에 age 같은 암호화 백엔드를 선택적으로 사용할 수도 있습니다.
Git을 통한 버전 관리 및 동기화
비밀번호 저장소는 Git으로 관리되어 모든 변경 이력을 추적할 수 있고, 원격 저장소를 등록하면 여러 장치나 팀원 사이에서 손쉽게 동기화할 수 있습니다. fossil 같은 대체 저장소 백엔드를 설정해 사용하는 것도 가능합니다.
명령줄 인터페이스(CLI) 중심 설계
주 사용자 인터페이스는 터미널 명령이며, CI/CD 환경이나 스크립트와 연동하기 쉽습니다. 외부 편집기를 함께 설정하면 gopass edit로 항목을 직접 편집할 수 있고, 명령줄 자동완성, REPL 모드, 검색 기능 등을 활용해 빠르게 비밀번호에 접근할 수 있습니다.
브라우저 통합
공식 확장인 gopass-bridge를 사용하면 Firefox와 Chrome(Chromium 기반 브라우저 포함)에서 gopass의 비밀번호를 자동으로 입력할 수 있어, 명령줄을 크게 벗어나지 않으면서 웹 사이트 로그인을 자동화할 수 있습니다.
Git 자격 증명 헬퍼 및 추가 통합
git-credential-gopass를 통해 Git 자격증명을 gopass에서 안전하게 저장하고 조회할 수 있습니다. 이외에도 Have I Been Pwned? 통합 등 다양한 생태계 확장이 제공되어 비밀번호 누출 여부 확인 등을 지원합니다.
설치와 기본 사용
gopass는 운영체제별로 다양한 패키지 관리자를 통해 설치할 수 있습니다.
- macOS/Linux: Homebrew를 통해 brew install gopass 명령으로 설치할 수 있습니다.
- macOS: MacPorts를 통해 sudo port install gopass 명령으로 설치할 수 있습니다.
- Debian/Ubuntu 계열: 공식 저장소의 gopass 패키지는 별개의 프로젝트이므로, gopass가 제공하는 패키지 저장소와 키링을 추가한 뒤 apt로 설치합니다.
- Fedora/RedHat/CentOS: dnf install gopass 명령으로 설치하며, 필요한 경우 dnf copr enable daftaupe/gopass를 먼저 실행합니다.
- Arch Linux: pacman -S gopass 명령으로 설치할 수 있습니다.
- Windows: winget install Git.Git, winget install GnuPG.Gpg4win, winget install gopass.gopass 순서로 설치하거나 Chocolatey, Scoop을 이용해 설치할 수 있습니다.
- FreeBSD/OpenBSD: /usr/ports/security/gopass 경로에서 make install로 설치할 수 있습니다.
- Alpine Linux: apk add gopass 명령으로 설치할 수 있습니다.
- 소스 빌드: go install github.com/gopasspw/gopass@latest 명령으로 빌드하거나, GitHub 릴리스 페이지에서 직접 바이너리를 내려받아 PATH에 추가할 수 있습니다.
설치 후에는 gopass setup으로 새 저장소를 초기화합니다. 기본적으로 GPG 암호화와 Git 버전 관리를 사용하는 저장소가 $HOME/.local/share/gopass/stores/root 위치에 생성되고, 설정은 $HOME/.config/gopass/config에 저장됩니다. –crypto=age나 –storage=fs 같은 옵션으로 기본 암호화 및 저장 방식을 변경할 수 있으며, 기존 저장소는 gopass clone 명령으로 복제할 수도 있습니다.
기본적인 명령은 다음과 같이 사용할 수 있습니다.
- gopass create: 새 비밀번호 항목을 생성합니다.
- gopass ls: 저장된 모든 항목의 목록을 확인합니다.
- gopass show -c [이름]: 지정한 항목의 비밀번호를 클립보드로 복사합니다.
- gopass rm [이름]: 기존 비밀번호 항목을 삭제합니다.
- gopass find [검색어]: 이름이 검색어와 일치하는 항목을 찾습니다.
- gopass mounts, gopass recipients, gopass sync: 각각 마운트된 저장소 목록, 수신자 키 목록, 원격 저장소와의 동기화를 수행합니다.
활용 예시
- 개발자가 터미널 환경에서 여러 서비스의 API 키와 데이터베이스 접속 정보를 gopass에 저장하고, Git 저장소를 통해 여러 작업 장치 간에 안전하게 동기화하는 용도로 사용할 수 있습니다.
- 팀 환경에서 공통 자격 증명을 Git 원격 저장소로 공유하면서, GPG 키 기반으로 접근 권한이 있는 팀원에게만 안전하게 배포하는 워크플로우에 활용할 수 있습니다.
- CI/CD 파이프라인에서 명령줄 기반 비밀번호 접근이 필요한 경우 gopass의 CLI 인터페이스를 스크립트와 연동해 비밀번호를 조회할 수 있습니다.
- gopass-bridge 확장과 함께 사용해 브라우저에서 gopass에 저장된 자격 증명으로 웹 사이트에 자동 로그인할 수 있습니다.
제한 및 확인사항
- 주 사용자 인터페이스가 명령줄이므로, 그래픽 사용자 인터페이스를 기본으로 제공하지는 않습니다.
- 기본 암호화 방식은 GPG에 의존하므로, GPG가 설치되어 있어야 기본 기능을 그대로 활용할 수 있습니다.
- gopass edit 명령으로 항목을 편집하려면 외부 텍스트 편집기가 추가로 필요합니다.
- Debian/Ubuntu 계열에서는 공식 저장소가 제공하는 gopass 패키지가 별개의 프로젝트이므로, 반드시 gopass 공식 패키지 저장소를 등록한 뒤 설치해야 합니다.
- 본 소프트웨어는 MIT 라이선스로 배포되는 오픈소스이며, 라이선스 전문은 GitHub 저장소의 LICENSE 파일에서 확인할 수 있습니다.
시스템 요구사항
gopass 자체는 별도 의존성 없이 작동할 수 있으나, 대부분의 사용 사례에서는 GPG와 Git이 함께 설치되어 있어야 기본적인 암호화와 버전 관리 기능을 활용할 수 있습니다. 비밀번호 항목을 직접 편집하는 gopass edit 명령을 사용하려면 외부 텍스트 편집기가 추가로 필요합니다. Windows에서는 winget, Chocolatey, Scoop 등 다양한 패키지 관리자를 통해 설치할 수 있습니다.


