快速瞭解通過SSH認證訪問伺服器
瞭解SSH
SSH 以非對稱加密實現身份驗證。較常用的非對稱加密有 RSA。
兩種加密過程:
1、通過使用者名稱密碼訪問伺服器,即使傳輸的資料是加密的也可能會被劫持到不信任的伺服器,洩露使用者名稱和密碼。
2、通過將公鑰(用來加密和認證客戶端)放到信任的伺服器上來和伺服器傳輸密文。
兩張醜圖大概解釋一下。
可以明顯看到第二圖的漏洞,劫持 公鑰後就可以肆無忌憚的傳送資訊給伺服器了,所以一般情況下會有一個認證中心伺服器,客戶端需要持有認證中心的公鑰來發送密文,認證中心再持有所有伺服器的公鑰來分發請求。
參考:維基百科SSh
使用 OpenSSH 和 Putty。
使用 OpenSSH 生成用於git 的金鑰。
開啟 git bash
ls -al ~/.ssh 列出目錄 或直接開啟 C:\Users\電腦使用者名稱\.ssh
-A | 列示所有條目,除了 .(點)和 ..(點-點)。 |
-a | 列示目錄中所有條目,包括以 .(點)開始的條目。 |
L | 列示連結引用的檔案或目錄內容。這是預設操作。後跟符號連結。如果使用 -l 選項,-N 選項就成為預設值,不後跟符號連結。當使用 -l 選項時,僅有 -L 選項能夠覆蓋 -N 預設值。 |
-l | (L 的小寫)顯示方式、連結數目、所有者、組、大小(按位元組)和每個檔案最近一次修改時間。如果檔案是特殊檔案,大小欄位包含主要和次要裝置數目。如果最近一次修改時間大於六個月之前,時間欄位以 月份 日期 年份的格式顯示,然而六個月內修改的檔案以 月份 日期 時間 的格式顯示。 如果檔案是符號連結,列印所連結到的檔案的路徑名,其前跟 ->。顯示符號連結的屬性。-n、-g、和 -o 標誌覆蓋 -l 標誌。 |
ssh-keygen -t rsa -C "Comment" 生成rsa金鑰對
Comment 可以填你的郵件或日期等其他註釋
ssh-add ~/.ssh/id_rsa 新增金鑰到ssh-agent快取中
如果失敗可以先執行一下 ssh-agent 命令。
ssh-agent就是一個金鑰管理器,執行ssh-agent以後,使用ssh-add將私鑰交給ssh-agent保管,注意這是臨時的。
手動拷貝公鑰(id_rsa.pub 檔案的內容)到伺服器上 pbcopy < ~/.ssh/id_rsa.pub
github 或 gitlab 等賬戶設定裡 ssh 選項 add key 就行了。
輸入 ssh [email protected] 測試。
使用 git 工具克隆程式碼
如果沒有成功會提示:
Disconnected: No supported authentication methods available (server sent: publickey)
sourcetree、Git Extensions 、命令列工具都行。
Putty 認證代理
下載 Git Extensions 最新版 安裝的時候勾選 putty。
功能簡介:生成金鑰對(虛擬檔案)、轉換 OPenSSh 金鑰對、認證代理(ssh-agent 、ssh-add)。
其他類似。