Github 加V認證

任何社交網站都有大V, 那全球最大的同性交友網站自然也有咯.

大V當然要有獨特的標記, Gayhub的標記是什麼樣的呢?

Warning!!!

首先警告一下這個東西超級麻煩, 以後每次提交都要輸入 commit 密碼

這還沒完, 而且如果你使用 IDE 麻煩會平方.

另外這個無法補簽... 你全綠漏一天你明年再接再厲吧...

Rebase 之後還丟失認證, 除非使用專用的變基技巧...

如果你確定你不怕麻煩就是要加V的話那我們開始吧!

應用場景

使用這個東西的原因就是 github 並不強制驗證提交

你可以非法獲取關注, 填上大佬的郵箱, 然後commit就會被計入大佬的動態(feed流)里, 大佬莫名奇妙就被提交了

還有, 如果你以貴司CTO身份提交一段bug代碼那就好玩了...

大佬為了表明這是親自提zhuang交bi才會用這個

所以某種意義上確實是 Github 大V 認證

使用gpg簽名

產生key

gpg --gen-key, git 安裝自帶這個模塊.

然後他會問你一大堆的問題:

Please select what kind of key you want: (1) RSA and RSA (default) (2) DSA and Elgamal (3) DSA (sign only) (4) RSA (sign only)Your selection?

你想要那種key?(4)

當然是簽名專用的咯, DSA,RSA其實都差不多, 當然有ECC就更好了.

RSA keys may be between 1024 and 4096 bits long.What keysize do you want? (2048) 4096

你想要多長? (4096)

廢話當然越長越好啊...

Please specify how long the key should be valid. 0 = key does not expire <n> = key expires in n days <n>w = key expires in n weeks <n>m = key expires in n months <n>y = key expires in n yearsKey is valid for? (0)

Key 的有效期? (0)

永久(我認為), 時限確實是個問題, key生成後不能改也不能隨便換, 刪掉可能會把以前的認證某些情況下會掉.

然後輸入自己的github的用戶名和聯繫郵箱, 可以帶一條 commit.

GalAstergalaster@foxmail.comFrom 2018-2-22-18:24

然後需要一個 commit 密碼, 輸入是看不見的, 要輸兩遍防止輸錯

以後每次commit都要輸入這個密碼!

啟動key

到這裡就完成了, 接下來查看你的key列表:

gpg --list-keys

/.gnupg/pubring.gpg---------------------------------pub 4096R/9E91A3EF 2018-02-22uid GalAster (From 2018-2-22-18:24) <galaster@foxmail.com>

這裡的 9E91A3EF 就是 key 的編號, 接下來導出秘鑰

gpg --armor --export pub 9E91A3EF

-----BEGIN PGP PUBLIC KEY BLOCK-----XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-----END PGP PUBLIC KEY BLOCK-----

把以上部分輸入github即可 , github.com/settings/gpg

接下來強制啟用commit簽名

git config --global commit.gpgsign truegit config --global user.signingkey 9E91A3EFgit config --global alias.commit commit -S

如果某個項目不要簽名, 那就單獨取消

git config commit.gpgsign false

IDE 配置

Well, 如果你使用IDE就超麻煩了, 如果你使用 Win 那就 $$small{麻煩×2, 麻煩^2, 麻煩^{麻煩^{麻煩^cdots}}}$$ 了...

我看了好多 Linux 的教程, 外加一個 Mac 唯獨沒有 win 的...

看了兩個小時原理才摸索出一個方法來...

Win 用戶

我把這個問題里的一大串過程看了一遍

stackoverflow.com/quest

首先需要把 tty 關掉, 輸入echo no-tty >> ~/.gnupg/gpg.conf.

tty 大概就是終端(teletypewriter)模式的意思, IDE里的那叫Termial乃至Console, 和tty不是一回事, 我本來也沒弄明白, 繞了半天.

其次需要一個 gpg-agent 來代替 tty, 這個可以由某種加密軟體來充當, 這我只知道putty自帶的那個可以, 然後搗鼓了半天還是拎不清由誰來代理加密.

唉, 看看有沒有別的軟體...

我又搜了搜 gpg+win 找到一個 Gpg4win 這名字... 那就它了!

下載速度很慢...天生慢, 因為掛代理都沒用...

畢竟win用戶從來沒有加密需求>>逃

安裝, 然後git指向這個可執行文件(shell下要轉義, powershell下就算了)

git config --global gpg.program "C:\Program Files (x86)\GnuPG\bin\gpg.exe"

還沒完, 打開那個 Kleopatra 軟體, 導入你的秘鑰.

然後你可以去你的 IDE 里點 push 了, 每次commit都要輸密碼了.

如果你還是有問題, 那麼可以手動更改全局設定

Linux 用戶

雖然 Linux 動手能力很強, 但是這個還是不太好找的

解決方案: youtrack.jetbrains.com/

git config --global gpg.program /usr/local/bin/gpg

然後新建一個bash腳本放在 /usr/local/bin/gpg

#!/bin/bash/usr/bin/gpg --batch --no-tty "$@"

Mac 用戶

本來對 Mac 用戶要收費的, 但我幹掉了這個難題心情不錯, 附贈的...

解決方案: stackoverflow.com/quest

brew install pinentry-macecho "no-tty" >> ~/.gnupg/gpg.confecho $(which pinentry-mac) >> ~/.gnupg/gpg-agent.conf


臨時博客地址: GalAster/Galaster.github.io

題圖: 來源不明


推薦閱讀:

Insect | 一種高度支持物理單位的開源計算器
2017年度盤點:15個最流行的GitHub機器學習項目
有哪些簡潔明快的 Jekyll 模板?
GitHub 上有哪些有趣的關於 NLP 或者 DL 的項目?

TAG:GitHub | 編程 | 教程 |