
dredge-cargo v0.11.1
노트, 설정, 키, 파일을 위한 암호화된 CLI 금고. 검색하세요, 정리하지 마세요.
이것은 비밀번호 관리자가 아닙니다. 노트 앱도 아닙니다. 그리고 확실히 심해 저서성 비정상 표본 분류학적 기원 기록소도 아닙니다. 하지만 처음 두 가지는 어느 것보다 잘합니다. 농담입니다 (사실 아닙니다).
찾으세요, 정리하지 마세요. 노트, 설정, 키, 비밀 — 터미널에서 5초면 됩니다.
"흔한 잡동사니로 나를 괴롭히지 마라." — 생선 장수
go install github.com/DeprecatedLuar/dredge-cargo/cmd/dredge@latest
당신이 전에 본 적 없는 멋진 기능들
- 암호화 저장소 — 리포지토리를 클론하면 완전히 해독할 수 없는 횡설수설만 보입니다. 비밀번호 없이는 리포지토리에 무엇이 있는지조차 알 수 없습니다. (AES-256-GCM + Argon2id 사용)
- 즉시 검색 — 게으르기 때문에 맞춤형 퍼지 검색 알고리즘을 만들었습니다. 300개 중에서 올바른 항목을 생각할 필요 없이 밀리초 단위로 찾고 싶었거든요.
- 무엇이든 저장 — 노트, 스크립트, 도트파일, 이미지, zip 아카이브. 파일이고 존재하기만 하면 dredge에 저장할 수 있습니다.
- 실시간 파일 링크 — 멋진 기능입니다. 모든 항목을 시스템 경로에 심볼릭 링크하여 dredge를 통해 직접 읽고 편집할 수 있습니다. 변경 사항은 리포지토리와 양방향으로 동기화됩니다.
- Git 백업 — 당신 소유의 개인 리포지토리입니다.
git clone만 하면 데이터를 가질 수 있습니다. - 세션 비밀번호 — 터미널 세션당 한 번만 묻습니다. 그 후에는 터미널을 종료할 때까지 비밀번호 없이 사용할 수 있습니다. (보안 섹션을 읽으면 더 잘 이해할 수 있습니다)
- 휴지통 + 실행 취소 — 삭제된 항목은 휴지통으로 이동합니다. 실수로 삭제했다면
dredge undo를 사용하세요.
dredge에 무엇을 저장할까요?
판단하지 않겠습니다. 한 번만 표시되는 성가신 API 키, SSH 설정, AI 프롬프트, 비밀번호, 실행 가능한 쉘 스크립트 자체, 이메일 템플릿?, 도트파일 (이상하지만 잘 작동합니다), zip 아카이브, 영화 목록, 빠른 접근을 위한 URL 목록...
심지어 일본어로 된 《체인소 맨》 2장의 합법적인 복사본도 있습니다. (제가 그 특정 것을 가지고 있을 수도 있고 아닐 수도 있습니다)
설치
Go
go install github.com/DeprecatedLuar/dredge-cargo/cmd/dredge@latest
$GOPATH/bin (보통 ~/go/bin)이 PATH에 있는지 확인하세요.
범용
curl -sSL https://raw.githubusercontent.com/DeprecatedLuar/the-satellite/main/satellite.sh | bash -s -- install DeprecatedLuar/dredge-cargo:dredge
다른 설치 방법
수동 설치
- 릴리즈에서 OS에 맞는 바이너리를 다운로드하세요.
- 실행 권한 부여:
chmod +x dredge-* - PATH로 이동:
mv dredge-* ~/.local/bin/dredge
소스에서 빌드
git clone https://github.com/DeprecatedLuar/dredge-cargo
cd dredge-cargo
go build -o dredge ./cmd/dredge
mv dredge ~/.local/bin/
빠른 시작
# 기존 git 리모트로 초기화
dredge init yourusername/vault # GitHub 단축 표기
# 또는: dredge init [email protected]:you/vault.git
# 첫 번째 항목 추가
dredge add "OpenAI Key" -c "sk-..." -t keys api # -c 플래그 없으면 에디터 열림
# 검색
dredge search openai
# Git 푸시
dredge push
사용법
# 무엇이든 추가
dredge add My SSH Config -t ssh dotfiles --import ~/.ssh/config
dredge add "Master Architect Prompt" --import prompt.md -t ai prompts
dredge add "Watchlist" -c "Dune 2, Oppenheimer..." -t lists
dredge add "project-backup" --import project.tar.gz # 바이너리 파일도 가능 :D
# 검색 — 기억나는 대로 입력
dredge search prompt
dredge search aws key
dredge search ssh
# 보기, 편집, 삭제
dredge view <id>
dredge edit <id>
dredge rm <id>
dredge undo # 되살리기
# 검색 결과에 번호가 매겨짐 — 번호를 입력하여 보기
dredge search ssh # 출력: 1. [xKP] SSH Config 2. [mNq] SSH Key
dredge 1 # 바로 보기
# Git 동기화
dredge push
dredge pull
dredge sync # pull + push
작동 방식
"깊은 곳에 무엇이 있는지 상상조차 할 수 없습니다." — 등대지기
자, 요약하자면:
두 가지 주요 암호화 기술을 사용하기로 결정했습니다: Argon2id와 물론 AES-256, 특히 GCM 변형입니다.
Argon2id는 RFC 9106의 권장 사항이자 2015년 PHC 우승자이기 때문입니다. 그게 다입니다. AES의 GCM 변형은 지문 검사로 인해 암호화된 데이터를 변조할 수 없게 만들기 때문입니다. 그것도 전부입니다.
현재는 모든 것을 ~/.local/share/dredge/에 암호화된 파일로 저장하고 있습니다. 이 디렉토리는 또한 git 리포지토리입니다 (적어도 현재는). 그래서 dredge push는 모든 것을 커밋하고 푸시하여 백업합니다. 각 항목은 독립적인 암호화된 블롭이며, 무작위 3자리 ID를 가집니다. 파일 이름이 노출되지 않도록 결정하여 누군가 당신의 파일을 볼 수 있어도 무엇을 보고 있는지 전혀 알 수 없습니다.
암호화 파이프라인
비밀번호
+ 16바이트 랜덤 솔트 ← 솔트는 .dredge-key에 저장됨
→ Argon2id (64 MB 메모리 · 4 스레드 · 1 반복)
→ 32바이트 마스터 키 (솔트 + 비밀번호 = 실제 키)
마스터 키 + 항목 내용 (TOML: 제목, 태그, 내용)
→ AES-256-GCM, 작업마다 새로운 랜덤 12바이트 논스 사용
→ [12B 논스][암호문 + 16B 인증 태그]
→ items/xKP로 디스크에 기록 (랜덤 ID, 확장자 없음)
따라서 전체 금고는 동일한 파생 키를 공유합니다 (키를 잃으면 데이터를 잃는다는 뜻입니다. 키를 잃지 마세요). 모든 항목은 동일한 키를 사용하며, 각각 고유한 랜덤 논스를 가집니다. 동일한 내용을 두 번 암호화하면 완전히 다른 암호문이 생성됩니다.
각 파일의 위치
~/.local/share/dredge/ ← 금고 (git 리포지토리)
├── .git/
├── .gitignore ← .spawned/와 links.json 제외
├── .dredge-key ← 솔트 + 암호화된 검증 문자열
├── items/
│ ├── xKP ← 암호화된 항목
│ ├── mNq ← 암호화된 항목
│ └── ...
├── .spawned/ ← 링크된 항목의 평문 복사본
└── links.json ← 심볼릭 링크 매니페스트
따라서 모든 암호화된 파일과 .dredge-key는 git 리포지토리에 저장되며, 모든 평문 파일(시스템에서 읽을 수 있도록 결정한 파일)은 추적되지 않습니다. 원하는 대로 처리하세요.
세션 모델
터미널에서 첫 번째 명령어를 실행한 후, 파생된 32바이트 키가 $XDG_RUNTIME_DIR/dredge/$PPID/.key에 캐시됩니다 (루트만 접근 가능).
동일한 터미널에서 이후의 모든 dredge 명령어는 캐시된 키를 사용합니다. 즉, 더 이상 비밀번호를 묻지 않습니다. 각 터미널은 부모 PID를 기반으로 자체 격리된 디렉토리를 얻습니다. 따라서 터미널이 죽으면 키는 디스크에서 사라집니다.
더 깊은 기술적 세부 사항
키 유도 — Argon2id: RFC 9106 권장 매개변수 (64 MB 메모리, 4 스레드, 1 반복). .dredge-key의 솔트는 비밀로 되어 있지 않으며, 파일이 있어도 비밀번호 무차별 대입을 매우 비싸게 만드는 역할을 합니다. 비밀번호가 당신을 안전하게 지켜줍니다. 무엇을 해야 할지 아시죠.