GitHub 支持 HTTPS 和 SSH 兩種協議。使用 HTTPS 協議時,每次提交都要求輸入用戶名和密碼,顯得有點麻煩。本文介紹如何通過配置 SSH keys 實現愉快的提交。
配置 SSH keys 的原理很簡單,采用非對稱加密方式生成公鑰和私鑰,公鑰告訴 GitHub ,私鑰留在自己電腦上(私鑰不可泄露),當我們向 GitHub 上提交數據時,GitHub 會用我們留給它的公鑰加密一段消息返回給我們的電腦,如果我們能夠用私鑰解密成功,說明是合法的用戶,這樣就避免我們輸入用戶名密碼了。大致的原理就是這樣,現在很多免登錄的系統都采用了這種方式,比如 Hadoop 免登錄配置也是這樣。
1 查看本地是否已有 SSH keys
查看當前用戶目錄下是否有 .ssh
文件夾,如果有就跳過第 2 和 3 步。
$ ls -la ~/.ssh total 32 drwxr-xr-x 1 Administrator 197121 0 八月 27 15:29 ./ drwxr-xr-x 1 Administrator 197121 0 二月 10 16:44 ../ -rw-r--r-- 1 Administrator 197121 3381 八月 27 15:21 id_rsa -rw-r--r-- 1 Administrator 197121 742 八月 27 15:21 id_rsa.pub -rw-r--r-- 1 Administrator 197121 1593 九月 5 17:05 known_hosts
2 生成 SSH 指紋
ssh-keygen -t rsa -b 4096 -C "你的郵箱地址"
3 添加 SSH 到 ssh-agent 中
eval "$(ssh-agent -s)"
執行完上述語句之后,我們當前用戶目錄下已經有了一個名為 .ssh
的隱藏文件夾了,打開這個目錄,會發現有一個名為 id_rsa.pub
的文件,這就是我們一會要使用的公鑰文件。
4 將公鑰告訴 GitHub
登錄 GitHub ,點擊右上角的向下的箭頭,選擇 Settings ,在新打開的頁面中左邊側欄選擇 SSH and GPG keys ,再右邊選擇 New SSH key,輸入 Title 和 Key 。
Title 的值建議能標識出哪台設備,如你的電腦型號、操作系統名稱等信息。Key 的值為上述 id_rsa.pub
文件中的內容。
5TortoiseGit 使用SSH需要安裝PuTTY
參考 https://blog.csdn.net/yhcad/article/details/88624286