日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Git之签署工具GPG的安装和使用

發布時間:2024/5/28 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Git之签署工具GPG的安装和使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、GPG 簡介

  • 簽署標簽與提交很棒,但是如果決定在正常的工作流程中使用它,必須確保團隊中的每一個人都理解如何這樣做。如果沒有,將會花費大量時間幫助其他人找出并用簽名的版本重寫提交。在采用簽署成為標準工作流程的一部分前,確保你完全理解 GPG 及簽署帶來的好處。
  • Git 雖然是密碼級安全的,但它不是萬無一失的,如果從因特網上的其他人那里拿取工作,并且想要驗證提交是不是真正地來自于可信來源,Git 提供了幾種通過 GPG 來簽署和驗證工作的方式。

二、GPG 的安裝

  • MacOS 的安裝:
# 安裝工具 $ brew uninstall gpg $ brew install gpg2 $ brew install pinentry-mac $ pinentry-program /usr/local/bin/pinentry-mac# 選擇秘鑰類型 $ gpg --full-generate-key# the GPG config $ echo no-tty >> ~/.gnupg/gpg.conf $ git config --global gpg.program /usr/local/bin/gpg
  • Windows 的安裝:
$ sed -i '/^no-tty/d' ~/.gnupg/gpg.conf $ git config --global --unset gpg.program

三、GPG 的使用

  • 在開始簽名之前,需要先配置 GPG 并安裝個人密鑰:
$ gpg --list-keys /Users/escape/.gnupg/pubring.kbx -------------------------------- pub rsa2048 2020-04-18 [SC] [expires: 2022-04-18]C174E50D123452BA2EEA10223EAB1C5CF88E8888 uid [ultimate] Escape <ecapelife@gmail.com> sub rsa2048 2020-04-18 [E] [expires: 2022-04-18]

  • 如果還沒有安裝一個密鑰,可以使用 gpg --gen-key 生成一個,一旦你有一個可以簽署的私鑰,可以通過設置 Git 的 user.signingkey 選項來簽署:
# 生成秘鑰(輸入用戶和郵箱之后還需要在輸入GPG的秘鑰才能夠生成) $ gpg --gen-key GnuPG needs to construct a user ID to identify your key. Real name: Escape Email address: ecapelife@gmail.com You selected this USER-ID:"Escape <ecapelife@gmail.com>" Change (N)ame, (E)mail, or (O)kay/(Q)uit? o# 按其ID導出ascii格式的密鑰 gpg --armor --export C174E50D123452BA2EEA10223EAB1C5CF88E8888

# 全局設置 $ git config --global commit.gpgsign true $ git config --global user.signingkey 0A46826A# 配置文件 [github]name = Escapeemail = ecapelife@gmail.comsigningkey = C174E50D123452BA2EEA10223EAB1C5CF88E8888
  • 現在,所有通過 GitHub Desktop 創建的提交都將經過簽名和驗證,客戶可以在第一次提交時詢問您一個 GPG 密鑰代碼短語:
# Add file $ git add .# Creates a signed commit $ git commit -S -m "your commit message"# Push to Github $ git push

四、簽署標簽

  • 如果已經設置好一個 GPG 私鑰,可以使用它來簽署新的標簽,所有需要做的只是使用 -s 代替 -a 即可。如果在那個標簽上運行 git show,會看到 GPG 簽名附屬在后面:
$ git tag -s v1.5 -m 'my signed 1.5 tag' You need a passphrase to unlock the secret key for user: "Escape <ecapelife@gmail.com 2048-bit RSA key, ID 800430EB, created 2020-04-18
  • 要驗證一個簽署的標簽,可以運行 git tag -v ,這個命令使用 GPG 來驗證簽名。為了驗證能正常工作,簽署者的公鑰需要在鑰匙鏈中:
$ git tag -v v1.4.2.1 object 883653babd8ee7ea23e6a5c392bb739348b1eb61 type commit tag v1.4.2.1 tagger Escape <ecapelife@gmail.com> 1158138501 -0700GIT 1.4.2.1 Minor fixes since 1.4.2, including git-mv and git-http with alternates. gpg: Signature made Mon Sep 13 02:08:25 2020 PDT using DSA key ID F3119B9A gpg: Good signature from "Escape <ecapelife@gmail.com>" gpg: aka "[jpeg image of size 1513]" Primary key fingerprint: 3565 2A26 2040 E066 C9A7 4A7D C0C6 D9A4 F311 9B9A

五、簽署提交

  • 在最新版本的 Git(v1.7.9 及以上) 中,也可以簽署個人提交,如果相對于標簽而言你對直接簽署到提交更感興趣的話,所有要做的只是增加一個 -S 到 git commit 命令。git log 也有一個 --show-signature 選項來查看及驗證這些簽名:
# 簽名 $ git commit -a -S -m 'signed commit'# 驗證 $ git log --show-signature -1
  • 在 Git 1.8.3 及以后的版本中,git merge 與 git pull 可以使用 --verify-signatures 選項來檢查并拒絕沒有攜帶可信 GPG 簽名的提交,如果使用這個選項來合并一個包含未簽名或有效的提交的分支時,合并不會生效:
$ git merge --verify-signatures non-verify fatal: Commit ab06180 does not have a GPG signature.
  • 如果合并包含的只有有效的簽名的提交,合并命令會提示所有的簽名它已經檢查過了然后會繼續向前:
$ git merge --verify-signatures signed-branch Commit 13ad65e has a good GPG signature by ecapelife (Git signing key) <ecapelife@gmail.com> Updating 5c3386c..13ad65e Fast-forwardREADME | 2 ++1 file changed, 2 insertions(+)
  • 也可以給 git merge 命令附加 -S 選項來簽署自己生成的合并提交。如下所示,演示驗證將要合并的分支的每一個提交都是簽名的并且簽署最后生成的合并提交:
$ git merge --verify-signatures -S signed-branch Commit 13ad65e has a good GPG signature by ecapelife (Git signing key) <ecapelife@gmail.com>You need a passphrase to unlock the secret key for user: "ecapelife (Git signing key) <ecapelife@gmail.com>" 2048-bit RSA key, ID 0A46826A, created 2014-06-04Merge made by the 'recursive' strategy.README | 2 ++1 file changed, 2 insertions(+) 與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的Git之签署工具GPG的安装和使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。