1. 程式人生 > >快速瞭解通過SSH認證訪問伺服器

快速瞭解通過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)。

其他類似。