콘텐츠로 이동
Dotweave Dotweave v0.39.7

시크릿 파일 동기화

age 암호화로 민감한 파일을 안전하게 동기화하는 방법을 알아보세요.

일부 설정 파일에는 민감한 데이터가 담겨 있어요. SSH 키, API 토큰, 인증 정보 같은 것들이요. 이런 파일은 Git 저장소에 평문으로 두면 절대 안 돼요. Dotweave는 secret 모드로 파일을 age로 암호화한 뒤 sync 디렉터리에 저장해요.


age는 간단하고 현대적인 파일 암호화 도구예요. Dotweave에 내장되어 있어서 별도로 설치할 필요가 없어요.

dotweave에서 age가 동작하는 방식이에요:

  • Recipients는 파일을 암호화하는 데 사용하는 공개 키(age1...)예요. 여러 recipient를 등록하면 서로 다른 기기에서 같은 파일을 복호화할 수 있어요.
  • Identity는 비밀 키(AGE-SECRET-KEY-...)로, ~/.config/dotweave/age-identity.txt에 저장돼요. pull 때 파일을 복호화하는 데 사용돼요.

핵심 개념은 이거예요: recipient(공개 키)를 가진 누구나 데이터를 암호화할 수 있지만, identity(비밀 키)를 가진 사람만 복호화할 수 있어요.


dotweave init을 실행하면 age 키 쌍이 자동으로 생성돼요:

dotweave init

비밀 키는 ~/.config/dotweave/age-identity.txt에 저장되고, 대응하는 공개 키는 동기화 설정에 recipient로 등록돼요.


다른 기기에서 쓰던 age 키가 이미 있다면, 초기화 때 전달할 수 있어요:

# 키를 직접 전달
dotweave init --key AGE-SECRET-KEY-1ABCDEF...
# 또는 붙여넣기 프롬프트 사용
dotweave init --promptKey

이렇게 하면 모든 기기가 같은 identity를 공유해서 서로의 시크릿을 복호화할 수 있어요.

dotweave init <repo>로 기존 sync 저장소에 연결할 때는 비밀 키를 반드시 제공해야 해요.


민감한 파일을 추적할 때 --mode secret을 사용하세요:

dotweave track ~/.ssh/config --mode secret
dotweave track ~/.aws/credentials --mode secret
dotweave track ~/.config/gh/hosts.yml --mode secret

그런 다음 push해서 암호화하고 저장하세요:

dotweave push

sync 디렉터리에서 암호화된 파일에는 .age 접미사가 붙어요:

sync-directory/
├── default/
│ ├── .ssh/
│ │ └── config.age
│ └── .aws/
│ └── credentials.age

  1. 새 기기에서 기존 저장소와 비밀 키로 dotweave를 초기화하세요:

    dotweave init https://github.com/you/dotfiles.git --key AGE-SECRET-KEY-1ABCDEF...
  2. 파일을 pull하세요:

    dotweave pull

    dotweave가 시크릿 파일을 자동으로 복호화해서 원래 경로에 써줘요. 끝!


각 기기마다 고유한 age 키 쌍이 있다면, 추가 recipient를 등록해서 시크릿 파일이 모든 기기에서 복호화되도록 할 수 있어요.

# 원래 기기에서 새 기기의 공개 키를 recipient로 추가
dotweave recipient add age1newdevicepublickey...

recipient를 추가한 후에는 다시 push해서 모든 recipient용으로 재암호화하세요:

dotweave push

  • 파일 내용은 암호화되지만, 파일 이름과 경로는 sync 디렉터리에 그대로 보여요. .age 확장자도 암호화된 파일임을 드러내요.
  • age identity(비밀 키)는 dotweave가 동기화하지 않아요. 비밀번호 관리자, 보안 복사, 또는 다른 신뢰할 수 있는 수단으로 직접 옮겨야 해요.
  • 비밀 키를 잃어버리고 다른 recipient도 설정되어 있지 않다면, 암호화된 파일은 복구할 수 없어요. 꼭 백업하세요.