GPG 키에 대해 Git에 알리기
GitHub Enterprise Server 인스턴스에서 커밋 주체 ID 및 계정과 연결된 확인된 이메일 주소와 일치하는 GPG 키를 사용하는 경우 커밋 서명 및 태그 서명을 시작할 수 있습니다.
커밋자 ID와 일치하는 GPG 키가 없는 경우 메일을 기존 키와 연결해야 합니다. 자세한 내용은 "GPG 키와 메일 연결"을(를) 참조하세요.
여러 GPG 키가 있는 경우 사용할 GPG 키를 Git에 알려야 합니다.
-
Terminal(터미널)Terminal(터미널)Git Bash를 엽니다.
-
이전에
--gpg-sign
(으)로 서명할 때 다른 키 형식을 사용하도록 Git을 구성한 경우, 이 구성을 설정 해제하면 기본 형식인openpgp
이(가) 사용됩니다.git config --global --unset gpg.format
-
gpg --list-secret-keys --keyid-format=long
명령을 사용하여 퍼블릭 키와 프라이빗 키가 모두 있는 긴 형식의 GPG 키를 나열합니다. 커밋 또는 태그에 서명하려면 프라이빗 키가 필요합니다.Shell gpg --list-secret-keys --keyid-format=long
gpg --list-secret-keys --keyid-format=long
참고: Linux에서 일부 GPG를 설치하려면 기존 키 목록을 대신 보는 데
gpg2 --list-keys --keyid-format LONG
을 사용해야 할 수 있습니다. 이 경우git config --global gpg.program gpg2
를 실행하여gpg2
를 사용할 Git도 구성해야 합니다. -
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
$ 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
-
Git에서 기본 GPG 서명 키를 설정하려면 아래 텍스트를 붙여넣고 사용하려는 GPG 기본 키 ID로 대체합니다. 이 예제에서 GPG 키 ID는
3AA5C34371567BD2
입니다.git config --global user.signingkey 3AA5C34371567BD2
또는 하위 키를 설정할 때
!
접미사를 포함합니다. 이 예제에서 GPG 하위 키 ID는4BB6D45482678BE3
입니다.git config --global user.signingkey 4BB6D45482678BE3!
-
필요에 따라 기본적으로 모든 커밋에 서명하도록 Git을 구성하려면 다음 명령을 입력합니다.
git config --global commit.gpgsign true
자세한 내용은 "커밋 서명"을 참조하세요.
-
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
-
필요에 따라 필요한 경우 PIN 또는 암호를 입력하라는 메시지를 표시하려면
pinentry-mac
을 설치합니다. 예를 들어 Homebrew 사용하여 다음을 수행합니다.brew install pinentry-mac echo "pinentry-program $(which pinentry-mac)" >> ~/.gnupg/gpg-agent.conf killall gpg-agent
GitHub Enterprise Server 인스턴스에서 커밋 주체 ID 및 계정과 연결된 확인된 이메일 주소와 일치하는 GPG 키를 사용하는 경우 커밋 서명 및 태그 서명을 시작할 수 있습니다.
커밋자 ID와 일치하는 GPG 키가 없는 경우 메일을 기존 키와 연결해야 합니다. 자세한 내용은 "GPG 키와 메일 연결"을(를) 참조하세요.
여러 GPG 키가 있는 경우 사용할 GPG 키를 Git에 알려야 합니다.
-
Terminal(터미널)Terminal(터미널)Git Bash를 엽니다.
-
이전에
--gpg-sign
(으)로 서명할 때 다른 키 형식을 사용하도록 Git을 구성한 경우, 이 구성을 설정 해제하면 기본 형식인openpgp
이(가) 사용됩니다.git config --global --unset gpg.format
-
gpg --list-secret-keys --keyid-format=long
명령을 사용하여 퍼블릭 키와 프라이빗 키가 모두 있는 긴 형식의 GPG 키를 나열합니다. 커밋 또는 태그에 서명하려면 프라이빗 키가 필요합니다.Shell gpg --list-secret-keys --keyid-format=long
gpg --list-secret-keys --keyid-format=long
참고: Linux에서 일부 GPG를 설치하려면 기존 키 목록을 대신 보는 데
gpg2 --list-keys --keyid-format LONG
을 사용해야 할 수 있습니다. 이 경우git config --global gpg.program gpg2
를 실행하여gpg2
를 사용할 Git도 구성해야 합니다. -
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
$ 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
-
Git에서 기본 GPG 서명 키를 설정하려면 아래 텍스트를 붙여넣고 사용하려는 GPG 기본 키 ID로 대체합니다. 이 예제에서 GPG 키 ID는
3AA5C34371567BD2
입니다.git config --global user.signingkey 3AA5C34371567BD2
또는 하위 키를 설정할 때
!
접미사를 포함합니다. 이 예제에서 GPG 하위 키 ID는4BB6D45482678BE3
입니다.git config --global user.signingkey 4BB6D45482678BE3!
-
필요에 따라 기본적으로 모든 커밋에 서명하도록 Git을 구성하려면 다음 명령을 입력합니다.
git config --global commit.gpgsign true
자세한 내용은 "커밋 서명"을 참조하세요.
GitHub Enterprise Server 인스턴스에서 커밋 주체 ID 및 계정과 연결된 확인된 이메일 주소와 일치하는 GPG 키를 사용하는 경우 커밋 서명 및 태그 서명을 시작할 수 있습니다.
커밋자 ID와 일치하는 GPG 키가 없는 경우 메일을 기존 키와 연결해야 합니다. 자세한 내용은 "GPG 키와 메일 연결"을(를) 참조하세요.
여러 GPG 키가 있는 경우 사용할 GPG 키를 Git에 알려야 합니다.
-
Terminal(터미널)Terminal(터미널)Git Bash를 엽니다.
-
이전에
--gpg-sign
(으)로 서명할 때 다른 키 형식을 사용하도록 Git을 구성한 경우, 이 구성을 설정 해제하면 기본 형식인openpgp
이(가) 사용됩니다.git config --global --unset gpg.format
-
gpg --list-secret-keys --keyid-format=long
명령을 사용하여 퍼블릭 키와 프라이빗 키가 모두 있는 긴 형식의 GPG 키를 나열합니다. 커밋 또는 태그에 서명하려면 프라이빗 키가 필요합니다.Shell gpg --list-secret-keys --keyid-format=long
gpg --list-secret-keys --keyid-format=long
참고: Linux에서 일부 GPG를 설치하려면 기존 키 목록을 대신 보는 데
gpg2 --list-keys --keyid-format LONG
을 사용해야 할 수 있습니다. 이 경우git config --global gpg.program gpg2
를 실행하여gpg2
를 사용할 Git도 구성해야 합니다. -
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
$ 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
-
Git에서 기본 GPG 서명 키를 설정하려면 아래 텍스트를 붙여넣고 사용하려는 GPG 기본 키 ID로 대체합니다. 이 예제에서 GPG 키 ID는
3AA5C34371567BD2
입니다.git config --global user.signingkey 3AA5C34371567BD2
또는 하위 키를 설정할 때
!
접미사를 포함합니다. 이 예제에서 GPG 하위 키 ID는4BB6D45482678BE3
입니다.git config --global user.signingkey 4BB6D45482678BE3!
-
필요에 따라 기본적으로 모든 커밋에 서명하도록 Git을 구성하려면 다음 명령을 입력합니다.
git config --global commit.gpgsign true
자세한 내용은 "커밋 서명"을 참조하세요.
-
.bashrc
시작 파일에 GPG 키를 추가하려면 다음 명령을 실행합니다.[ -f ~/.bashrc ] && echo -e '\nexport GPG_TTY=$(tty)' >> ~/.bashrc
Git에 SSH 키에 대해 알리기
기존 SSH 키를 사용하여 커밋 및 태그에 서명하거나 서명을 위해 특별히 새 키를 생성할 수 있습니다. 자세한 내용은 "새 SSH 키 생성 및 ssh-agent에 추가"을(를) 참조하세요.
참고: SSH 서명 확인은 Git 2.34 이상에서 사용할 수 있습니다. Git 버전을 업데이트하려면 Git 웹 사이트를 참조하세요.
-
Terminal(터미널)Terminal(터미널)Git Bash를 엽니다.
-
SSH를 사용하여 커밋 및 태그에 서명하도록 Git을 구성합니다.
git config --global gpg.format ssh
-
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 웹 사이트를 참조하세요.
-
smimesign을 설치합니다.
-
Terminal(터미널)Terminal(터미널)Git Bash를 엽니다.
-
S/MIME을 사용하여 커밋 및 태그에 서명하도록 Git을 구성합니다. Git 2.19 이상에서는
git config gpg.x509.program
및git 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 키를 사용하는 경우 커밋 및 태그에 서명을 시작할 수 있습니다.
-
-
커밋한 사람 ID와 일치하는 X.509 키를 사용하지 않는 경우
smimesign --list-keys
명령을 사용하여 인증서와 프라이빗 키가 모두 있는 X.509 키를 나열합니다.smimesign --list-keys
-
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
-
Git에서 X.509 서명 키를 설정하려면 아래 텍스트를 붙여넣고 이전에 복사한 인증서 ID를 대체합니다.
-
X.509 키를 사용하여 모든 리포지토리에 서명하려면 다음을 수행합니다.
git config --global user.signingkey 0ff455a2708394633e4bb2f88002e3cd80cbd76f
-
X.509 키를 사용하여 단일 리포지토리에 서명하려면 다음을 수행합니다.
cd PATH-TO-REPOSITORY git config --local user.signingkey 0ff455a2708394633e4bb2f88002e3cd80cbd76f
-
추가 참고 자료
- "GitHub 계정에 새 SSH 키 추가."
- "커밋 서명"
- "태그 서명"