GIT - 비밀 공유

추상적인



경우에 따라 다른 팀원과 비밀을 안전하게 공유하고 싶을 수도 있습니다. 게다가 당신은 그 비밀의 역사를 갖고 싶어합니다.
이를 위해Git crypt는 git 저장소 내에서 비밀을 처리하는 데 도움이 됩니다.

git-crypt는 git 저장소에 있는 파일의 투명한 암호화 및 암호 해독을 가능하게 합니다. 보호하기로 선택한 파일은 커밋 시 암호화되고 체크아웃 시 해독됩니다. git-crypt를 사용하면 공개 및 비공개 콘텐츠가 혼합된 저장소를 자유롭게 공유할 수 있습니다.

일부 기능
  • 일반 텍스트로 비밀을 실수로 푸시하지 않음
  • 자격 증명을 공유할 수 있음
  • 버전 제어에 자격 증명 넣기

  • 설치



    먼저 git-crypt를 설치해야 합니다.

    설치를 위해 make가 필요합니다.
    repo을 복제하고 다음 명령을 사용하십시오.
    먼저 cd 임시 디렉토리에 저장하십시오.

    git clone [email protected]:AGWA/git-crypt.git
    cd git-crypt
    make
    make install
    


    비고


  • 자세한 내용은 install instructions에서 git-crpyt를 설치하십시오.
  • docker 지식이 있는 사용자의 경우: git-secret이 이미 설치된 adocker image를 준비했습니다.
  • docker run -v <local_git_repo>:/home/git-secrets/ andyaugustin/git-secrets:main git-crypt


  • 설정



    GPG



    키 쌍이 필요합니다(실제로 메일 주소에 대해 이미 생성되었을 수 있음).
    git 사용자에 추가된 메일 주소를 사용하십시오.

    먼저 해당 설정을 확인하고 싶습니다.

    $ git config --global user.email
    [email protected]
    $ git config --global user.name
    John Doe
    


    해당 항목을 마음에 두거나 적어 두십시오 :evil_imp:

    이제 gpg 키를 생성하려고 합니다.
    방금 받은 이름과 메일을 입력합니다.

    gpg --gen-key
    


    git-crypt



    git 저장소를 사용할 수 있어야 합니다. 선호하는 Git 공급자(예: GitHub, GitLab, Gitea, ...)에서 이름이 git-crypt-test인 리포지토리를 생성하십시오.
    저장소 및 cd를 복제하십시오.

    git clone <use_your_repo_url>/git-crypt-test
    cd git-crypt-test
    


    이제 git-crypt를 초기화해야 합니다.

    git-crypt init
    


    이제 git-crypt로 모니터링하고 처리할 파일을 지정하려고 합니다.
    그것은 쉽습니다. 따라서 암호화하려는 파일과 함께 .gitattributes 파일을 추가하기만 하면 됩니다.

    echo "secretfile filter=git-crypt diff=git-crypt\n*.key filter=git-crypt diff=git-crypt\nsecretdir/** filter=git-crypt diff=git-crypt" >> .gitattributes
    


    이제 .gitattributes 파일의 내용이 보일 것입니다.

    secretfile filter=git-crypt diff=git-crypt
    *.key filter=git-crypt diff=git-crypt
    secretdir/** filter=git-crypt diff=git-crypt
    


    이것은 .gitignore 파일과 같으며 다음과 같은 내용이 있습니다.
  • 이름이 secretfile인 모든 파일을 git-crypt로 처리
  • 확장자가 *.key인 모든 파일을 git-crypt로 처리
  • git-crypt를 사용하여 secretdir/디렉토리 내의 모든 파일을 처리합니다
  • .

    이제 비밀에 git 사용자를 추가합니다. 따라서 gpg 키의 ID를 가져와야 합니다.

    gpg --list-key $(git config --global user.email)
    


    (id는/와 날짜 사이의 pub에 있습니다).

    텍스트 편집기에 복사하십시오.

    이제 로컬 git 리포지토리 데이터베이스의 키링에 키를 추가합니다.
    텍스트 에디터에 복사한 아이디로 교체해주세요.

    git-crypt add-gpg-user <USER_ID>
    


    이제 암호화를 위한 파일을 추가합니다.

    echo "This file will be encrypted" >> to_encrypt.key
    


    변경 사항을 커밋합니다.

    git add .
    git commit -m "add file to encrypt :lock:"
    


    이제 파일을 잠그고 확인하십시오.

    git-crypt lock
    


    그냥 파일을 확인

    cat to_encrypt.key
    


    암호화되어 있습니다. 잠금 해제 유형

    git-crypt unlock
    


    파일을 다시 확인하십시오

    cat to_encrypt.key
    


    좋은 점은 암호화되지 않은 파일을 git repo에 푸시할 수 없다는 것입니다.
    그것을 테스트하자.

    git add .
    git commit -m "add encrypted file"
    git push
    


    즐겨찾는 git 제공업체에서 파일을 확인하세요. 암호화되어 있음을 알 수 있습니다.

    git-crypt 데이터베이스에 사용자 추가



    git-crypt에 사용자를 추가하려면 공개 gpg 파일이 필요합니다.
    다른 사용자에게 다음 명령을 사용하도록 지시하십시오.

    gpg --armor --output public-key.gpg --export <key_mail_address>
    


    키 파일을 gpg 키링으로 가져오고 신뢰 수준 궁극기를 추가하십시오.

    gpg --import public-key.gpg
    # get the id of the imported key
    gpg --list-key <key_mail_address>
    gpg --edit-key <key_id>
    trust
    # We need ultimate trust, so choose 5
    save
    


    이제 이전과 같이 사용자를 추가할 수 있습니다.

    # the user_id is the id of the user in your public key_ring
    git-crypt add-gpg-user <USER_ID>
    


    이제 다른 사용자는 git 저장소에서 git-crypt로 파일을 해독할 수 있습니다 🚀

    좋은 웹페이지 즐겨찾기