Skip to main content

서명 키에 대해 Git에 알리기

로컬로 커밋에 서명하려면 사용하려는 GPG, SSH 또는 X.509 키가 있음을 Git에 알려야 합니다.

Platform navigation

GPG 키에 대해 Git에 알리기

GitHub.com에서 커밋 주체 ID 및 계정과 연결된 확인된 이메일 주소와 일치하는 GPG 키를 사용하는 경우 커밋 서명 및 태그 서명을 시작할 수 있습니다.

커밋자 ID와 일치하는 GPG 키가 없는 경우 메일을 기존 키와 연결해야 합니다. 자세한 내용은 "GPG 키와 메일 연결"을(를) 참조하세요.

여러 GPG 키가 있는 경우 사용할 GPG 키를 Git에 알려야 합니다.

  1. Terminal(터미널)Terminal(터미널)Git Bash를 엽니다.

  2. 이전에 --gpg-sign(으)로 서명할 때 다른 키 형식을 사용하도록 Git을 구성한 경우, 이 구성을 설정 해제하면 기본 형식인 openpgp이(가) 사용됩니다.

    git config --global --unset gpg.format
    
  3. gpg --list-secret-keys --keyid-format=long 명령을 사용하여 퍼블릭 키와 프라이빗 키가 모두 있는 긴 형식의 GPG 키를 나열합니다. 커밋 또는 태그에 서명하려면 프라이빗 키가 필요합니다.

    Shell
    gpg --list-secret-keys --keyid-format=long
    

    참고: Linux에서 일부 GPG를 설치하려면 기존 키 목록을 대신 보는 데 gpg2 --list-keys --keyid-format LONG을 사용해야 할 수 있습니다. 이 경우 git config --global gpg.program gpg2를 실행하여 gpg2를 사용할 Git도 구성해야 합니다.

  4. GPG 키 목록에서 사용할 GPG 키 ID의 긴 형식을 복사합니다. 이 예제에서 GPG 키 ID는 3AA5C34371567BD2입니다.

    Shell
    
    $ gpg --list-secret-keys --keyid-format=long
    /Users/hubot/.gnupg/secring.gpg
    ------------------------------------
    sec   4096R/3AA5C34371567BD2 2016-03-10 [expires: 2017-03-10]
    uid                          Hubot <hubot@example.com>
    ssb   4096R/4BB6D45482678BE3 2016-03-10
    
  5. Git에서 기본 GPG 서명 키를 설정하려면 아래 텍스트를 붙여넣고 사용하려는 GPG 기본 키 ID로 대체합니다. 이 예제에서 GPG 키 ID는 3AA5C34371567BD2입니다.

    git config --global user.signingkey 3AA5C34371567BD2
    

    또는 하위 키를 설정할 때 ! 접미사를 포함합니다. 이 예제에서 GPG 하위 키 ID는 4BB6D45482678BE3입니다.

    git config --global user.signingkey 4BB6D45482678BE3!
    
  6. 필요에 따라 기본적으로 모든 커밋에 서명하도록 Git을 구성하려면 다음 명령을 입력합니다.

    git config --global commit.gpgsign true
    

    자세한 내용은 "커밋 서명"을 참조하세요.

  7. GPG 도구 모음을 사용하지 않는 경우 zsh 셸에서 다음 명령을 실행하여 .zshrc파일(있는 경우)에 또는 .zprofile 파일에 GPG 키를 추가합니다.

    $ if [ -r ~/.zshrc ]; then echo -e '\nexport GPG_TTY=$(tty)' >> ~/.zshrc; \
      else echo -e '\nexport GPG_TTY=$(tty)' >> ~/.zprofile; fi
    

    또는 bash 셸을 사용하는 경우 다음 명령을 실행합니다.

    $ if [ -r ~/.bash_profile ]; then echo -e '\nexport GPG_TTY=$(tty)' >> ~/.bash_profile; \
      else echo -e '\nexport GPG_TTY=$(tty)' >> ~/.profile; fi
    
  8. 필요에 따라 필요한 경우 PIN 또는 암호를 입력하라는 메시지를 표시하려면 pinentry-mac을 설치합니다. 예를 들어 Homebrew 사용하여 다음을 수행합니다.

    brew install pinentry-mac
    echo "pinentry-program $(which pinentry-mac)" >> ~/.gnupg/gpg-agent.conf
    killall gpg-agent
    

GitHub.com에서 커밋 주체 ID 및 계정과 연결된 확인된 이메일 주소와 일치하는 GPG 키를 사용하는 경우 커밋 서명 및 태그 서명을 시작할 수 있습니다.

커밋자 ID와 일치하는 GPG 키가 없는 경우 메일을 기존 키와 연결해야 합니다. 자세한 내용은 "GPG 키와 메일 연결"을(를) 참조하세요.

여러 GPG 키가 있는 경우 사용할 GPG 키를 Git에 알려야 합니다.

  1. Terminal(터미널)Terminal(터미널)Git Bash를 엽니다.

  2. 이전에 --gpg-sign(으)로 서명할 때 다른 키 형식을 사용하도록 Git을 구성한 경우, 이 구성을 설정 해제하면 기본 형식인 openpgp이(가) 사용됩니다.

    git config --global --unset gpg.format
    
  3. gpg --list-secret-keys --keyid-format=long 명령을 사용하여 퍼블릭 키와 프라이빗 키가 모두 있는 긴 형식의 GPG 키를 나열합니다. 커밋 또는 태그에 서명하려면 프라이빗 키가 필요합니다.

    Shell
    gpg --list-secret-keys --keyid-format=long
    

    참고: Linux에서 일부 GPG를 설치하려면 기존 키 목록을 대신 보는 데 gpg2 --list-keys --keyid-format LONG을 사용해야 할 수 있습니다. 이 경우 git config --global gpg.program gpg2를 실행하여 gpg2를 사용할 Git도 구성해야 합니다.

  4. GPG 키 목록에서 사용할 GPG 키 ID의 긴 형식을 복사합니다. 이 예제에서 GPG 키 ID는 3AA5C34371567BD2입니다.

    Shell
    
    $ gpg --list-secret-keys --keyid-format=long
    /Users/hubot/.gnupg/secring.gpg
    ------------------------------------
    sec   4096R/3AA5C34371567BD2 2016-03-10 [expires: 2017-03-10]
    uid                          Hubot <hubot@example.com>
    ssb   4096R/4BB6D45482678BE3 2016-03-10
    
  5. Git에서 기본 GPG 서명 키를 설정하려면 아래 텍스트를 붙여넣고 사용하려는 GPG 기본 키 ID로 대체합니다. 이 예제에서 GPG 키 ID는 3AA5C34371567BD2입니다.

    git config --global user.signingkey 3AA5C34371567BD2
    

    또는 하위 키를 설정할 때 ! 접미사를 포함합니다. 이 예제에서 GPG 하위 키 ID는 4BB6D45482678BE3입니다.

    git config --global user.signingkey 4BB6D45482678BE3!
    
  6. 필요에 따라 기본적으로 모든 커밋에 서명하도록 Git을 구성하려면 다음 명령을 입력합니다.

    git config --global commit.gpgsign true
    

    자세한 내용은 "커밋 서명"을 참조하세요.

GitHub.com에서 커밋 주체 ID 및 계정과 연결된 확인된 이메일 주소와 일치하는 GPG 키를 사용하는 경우 커밋 서명 및 태그 서명을 시작할 수 있습니다.

커밋자 ID와 일치하는 GPG 키가 없는 경우 메일을 기존 키와 연결해야 합니다. 자세한 내용은 "GPG 키와 메일 연결"을(를) 참조하세요.

여러 GPG 키가 있는 경우 사용할 GPG 키를 Git에 알려야 합니다.

  1. Terminal(터미널)Terminal(터미널)Git Bash를 엽니다.

  2. 이전에 --gpg-sign(으)로 서명할 때 다른 키 형식을 사용하도록 Git을 구성한 경우, 이 구성을 설정 해제하면 기본 형식인 openpgp이(가) 사용됩니다.

    git config --global --unset gpg.format
    
  3. gpg --list-secret-keys --keyid-format=long 명령을 사용하여 퍼블릭 키와 프라이빗 키가 모두 있는 긴 형식의 GPG 키를 나열합니다. 커밋 또는 태그에 서명하려면 프라이빗 키가 필요합니다.

    Shell
    gpg --list-secret-keys --keyid-format=long
    

    참고: Linux에서 일부 GPG를 설치하려면 기존 키 목록을 대신 보는 데 gpg2 --list-keys --keyid-format LONG을 사용해야 할 수 있습니다. 이 경우 git config --global gpg.program gpg2를 실행하여 gpg2를 사용할 Git도 구성해야 합니다.

  4. GPG 키 목록에서 사용할 GPG 키 ID의 긴 형식을 복사합니다. 이 예제에서 GPG 키 ID는 3AA5C34371567BD2입니다.

    Shell
    
    $ gpg --list-secret-keys --keyid-format=long
    /Users/hubot/.gnupg/secring.gpg
    ------------------------------------
    sec   4096R/3AA5C34371567BD2 2016-03-10 [expires: 2017-03-10]
    uid                          Hubot <hubot@example.com>
    ssb   4096R/4BB6D45482678BE3 2016-03-10
    
  5. Git에서 기본 GPG 서명 키를 설정하려면 아래 텍스트를 붙여넣고 사용하려는 GPG 기본 키 ID로 대체합니다. 이 예제에서 GPG 키 ID는 3AA5C34371567BD2입니다.

    git config --global user.signingkey 3AA5C34371567BD2
    

    또는 하위 키를 설정할 때 ! 접미사를 포함합니다. 이 예제에서 GPG 하위 키 ID는 4BB6D45482678BE3입니다.

    git config --global user.signingkey 4BB6D45482678BE3!
    
  6. 필요에 따라 기본적으로 모든 커밋에 서명하도록 Git을 구성하려면 다음 명령을 입력합니다.

    git config --global commit.gpgsign true
    

    자세한 내용은 "커밋 서명"을 참조하세요.

  7. .bashrc 시작 파일에 GPG 키를 추가하려면 다음 명령을 실행합니다.

    [ -f ~/.bashrc ] && echo -e '\nexport GPG_TTY=$(tty)' >> ~/.bashrc
    

Git에 SSH 키에 대해 알리기

기존 SSH 키를 사용하여 커밋 및 태그에 서명하거나 서명을 위해 특별히 새 키를 생성할 수 있습니다. 자세한 내용은 "새 SSH 키 생성 및 ssh-agent에 추가"을(를) 참조하세요.

참고: SSH 서명 확인은 Git 2.34 이상에서 사용할 수 있습니다. Git 버전을 업데이트하려면 Git 웹 사이트를 참조하세요.

  1. Terminal(터미널)Terminal(터미널)Git Bash를 엽니다.

  2. SSH를 사용하여 커밋 및 태그에 서명하도록 Git을 구성합니다.

    git config --global gpg.format ssh
    
  3. Git에서 SSH 서명 키를 설정하려면 아래 텍스트를 붙여넣고, /PATH/TO/.SSH/KEY.PUB를 사용하려는 공개 키의 경로로 대체합니다.

    git config --global user.signingkey /PATH/TO/.SSH/KEY.PUB
    

Git에 X.509 키에 대해 알리기

smimesign을 사용하여 S/MIME를 통해 커밋 및 태그에 서명할 수 있습니다.

참고: S/MIME 서명 확인은 Git 2.19 이상에서 사용할 수 있습니다. Git 버전을 업데이트하려면 Git 웹 사이트를 참조하세요.

  1. smimesign을 설치합니다.

  2. Terminal(터미널)Terminal(터미널)Git Bash를 엽니다.

  3. S/MIME을 사용하여 커밋 및 태그에 서명하도록 Git을 구성합니다. Git 2.19 이상에서는 git config gpg.x509.programgit config gpg.format 명령을 사용합니다.

    • S/MIME을 사용하여 모든 리포지토리에 서명하려면 다음을 수행합니다.

      git config --global gpg.x509.program smimesign
      git config --global gpg.format x509
      
    • S/MIME을 사용하여 단일 리포지토리에 서명하려면 다음을 수행합니다.

      cd PATH-TO-REPOSITORY
      git config --local gpg.x509.program smimesign
      git config --local gpg.format x509
      

      Git 2.18 이하 버전에서는 git config gpg.program 명령을 사용합니다.

    • S/MIME을 사용하여 모든 리포지토리에 서명하려면 다음을 수행합니다.

      git config --global gpg.program smimesign
      
    • S/MIME을 사용하여 단일 리포지토리에 서명하려면 다음을 수행합니다.

      cd  PATH-TO-REPOSITORY
      git config --local gpg.program smimesign
      

      커밋한 사람 ID와 일치하는 X.509 키를 사용하는 경우 커밋 및 태그에 서명을 시작할 수 있습니다.

  4. 커밋한 사람 ID와 일치하는 X.509 키를 사용하지 않는 경우 smimesign --list-keys 명령을 사용하여 인증서와 프라이빗 키가 모두 있는 X.509 키를 나열합니다.

    smimesign --list-keys
    
  5. X.509 키 목록에서 사용하려는 X.509 키의 인증서 ID를 복사합니다. 이 예제에서 인증서 ID는 0ff455a2708394633e4bb2f88002e3cd80cbd76f입니다.

    $ smimesign --list-keys
                 ID: 0ff455a2708394633e4bb2f88002e3cd80cbd76f
                S/N: a2dfa7e8c9c4d1616f1009c988bb70f
          Algorithm: SHA256-RSA
           Validity: 2017-11-22 00:00:00 +0000 UTC - 2020-11-22 12:00:00 +0000 UTC
             Issuer: CN=DigiCert SHA2 Assured ID CA,OU=www.digicert.com,O=DigiCert Inc,C=US
            Subject: CN=Octocat,O=GitHub\, Inc.,L=San Francisco,ST=California,C=US
             Emails: octocat@github.com
    
  6. Git에서 X.509 서명 키를 설정하려면 아래 텍스트를 붙여넣고 이전에 복사한 인증서 ID를 대체합니다.

    • X.509 키를 사용하여 모든 리포지토리에 서명하려면 다음을 수행합니다.

      git config --global user.signingkey 0ff455a2708394633e4bb2f88002e3cd80cbd76f
      
    • X.509 키를 사용하여 단일 리포지토리에 서명하려면 다음을 수행합니다.

      cd  PATH-TO-REPOSITORY
      git config --local user.signingkey 0ff455a2708394633e4bb2f88002e3cd80cbd76f
      

추가 참고 자료