GitHub防黑客新措施:棄用賬密驗證Git操作,改用token或SSH密鑰
本文經AI新媒體量子位(公眾號ID:QbitAI)授權轉載,轉載請聯系出處。
還在用賬戶+密碼對GitHub上的Git操作進行身份驗證?
趕緊整個token(令牌)或SSH密鑰吧!

8月14號0點(8月13日9:00 PST)開始,在GitHub上執行Git操作就會導致失敗。
GitHub官方表示,這一舉措是為了提高Git操作的安全性,防止密碼撞庫等事情發生。
哪些操作會受影響?
簡單來說,如果你還在用賬密驗證Git操作,這些行為都會受到影響:
- 命令行Git訪問
- 采用Git的桌面應用程序(GitHub Desktop不受影響)
- 賬密訪問GitHub上Git repo的一切應用程序/服務
這些用戶不會受影響:
- 已經采用token或SSH密鑰方式驗證,即啟用雙因素身份驗證(2FA)的用戶
- 使用GitHub Enterprise Server本地產品的用戶(該產品尚未對此進行更改)
- 使用GitHub App的用戶,此前已經不支持賬密驗證
當然,大部分經常使用Git的用戶應該都已經知道這件事了。
在今年6月30號(15~18時)、7月1號(0~3時)、7月28號(15~18時)和29號(0~3時),GitHub已經針對這件事進行了預演,所有Git操作都被要求用token或SSH密鑰驗證。
現在,這項舉措已經變成一個永久措施。
GitHub究竟為什么要這樣做呢?
token和SSH密鑰安全在哪里?
首先需要了解,只用賬戶和密碼進行身份驗證會有什么隱患。
互聯網上,每天都有大量網站遭受黑客攻擊,導致數據外泄,這些數據中就包括不少用戶的賬號密碼。
拿到賬號密碼后,黑客會用它們試著登錄其他網站,也就是所謂的密碼撞庫。
簡單來說,如果你ABC網站用的是一套賬戶密碼,在A網站的密碼被泄露后,BC網站也可能會被盜號。
為了防止密碼撞庫,網站會采取更多手段驗證身份信息,像GitHub就推出了雙因素身份驗證、登錄警報、設備認證、防用泄露密碼及支持WebAuth等措施。
雙因素身份驗證,是指在秘密信息(密碼等)、個人物品(身份證等)、生理特征(指紋/虹膜/人臉等)這三種因素中,同時用兩種因素進行認證的過程。
現在,GitHub開始強制用戶采用token或SSH密鑰進行身份驗證。相比于賬密,這兩者的安全性顯然更高:
- 唯一性:僅限GitHub使用,根據設備/使用次數生成
- 可撤銷性:可隨時被單獨撤銷,其他憑證不受影響
- 區域性:使用范圍可控,只允許在部分訪問活動中執行
- 隨機性:不受撞庫影響,比賬密復雜度更高
那么,token和SSH密鑰之間,哪個更合適呢?
雖然目前GitHub官方推薦的是token,因為它設置更為簡單,不過相比之下,SSH密鑰的安全性要更高一些。
還沒有設置token或SSH密鑰的Git用戶,可以戳官方教程整起來了~
GitHub設置教程:
[1]https://docs.github.com/en/github/authenticating-to-github/keeping-your-account-and-data-secure/creating-a-personal-access-token
[2]https://docs.github.com/en/github/authenticating-to-github/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent