2012-05-16 92 views
1

當我爲Git安裝計算機時,我生成了一個私有和公共SSH密鑰。然後我讓GitHub知道我的公鑰是什麼。我的理解是公鑰可以加密消息,私鑰可以加密消息。所以我可以理解github如何通過SSH向我發送加密郵件。GitHub如何處理推送安全性?

但是,我的問題是,當我推到GitHub時,它是如何知道我是誰在推動?難道其他人無法使用我的名字和電子郵件創建自己的SSH密鑰,然後推送到我的GitHub存儲庫?

我懷疑是這種情況,那麼對此有何安全措施?謝謝!

回答

5

GitHub提供了公鑰的副本,其中包含的信息不僅僅是您的姓名和電子郵件地址。它有一個獨特的指紋,不能通過生成僞造的公鑰來重現(至少不是沒有大規模的強力攻擊或一些意想不到的數學突破)。

ssh協議的工作方式,GitHub會看到一個ssh連接,它會根據您的公鑰進行身份驗證。這樣的連接可以只由由擁有您的私鑰副本的人創建。

GitHub沒有您的私鑰副本,但它可以驗證您的私鑰。 (這就是public key cryptography的全部內容。)

+0

謝謝!這是維基百科文章中所謂的「數字簽名」嗎? – user1027169