SSH協議概述

一、SSH爲何物

        SSH 爲 Secure Shell(安全外殼協議) 的縮寫,由 IETF 的網絡小組(Network Working Group)所制定。SSH 是建立在應用層基礎上的安全協議。是目前較可靠,專爲遠程登錄會話和其他網絡服務提供安全性的協議。SSH最初是UNIX系統上的一個程序,後來又迅速擴展到其他操作平臺。

二、SSH的功能

        像ftp、telnet這種用明文在網絡上傳送口令和數據,在本質上都是不安全的,很容易受到“中間人”(man-in-the-middle)這種方式的攻擊。所謂“中間人”的攻擊方式, 就是“中間人”冒充真正的服務器接收你傳給服務器的數據,然後再冒充你把數據傳給真正的服務器。服務器和你之間的數據傳送被“中間人”一轉手做了手腳之後,就會出現很嚴重的問題。通過使用SSH,你可以把所有傳輸的數據進行加密,這樣"中間人"這種攻擊方式就不可能實現了,而且也能夠防止DNS欺騙和IP欺騙。

三、基於密鑰的驗證原理

        創建一對密匙,並把公用密匙放在需要訪問的服務器上。以Github爲例,它支持的SSH密鑰加密算法有:ssh-ed25519', 'ssh-rsa', 'ssh-dss', 'ecdsa-sha等。

        如果你要連接到SSH服務器上,客戶端軟件就會向服務器發出請求,請求用你的密匙進行安全驗證。服務器收到請求之後,先在該服務器上你的主目錄下尋找你的公用密匙,然後把它和你發送過來的公用密匙進行比較。如果兩個密匙一致,服務器就用公用密匙加密“質詢”(challenge)並把它發送給客戶端軟件。客戶端軟件收到“質詢”之後就可以用你的私人密匙解密再把它發送給服務器。

        在確保你私鑰沒有泄露的前提下,使用SSH傳送的數據是安全的。因爲“中間人”並沒有你的私鑰。

四、如何生成密鑰對

        你可以點擊上面的藍色字體進入github的官方文檔查看,或者 繼續往下看(๑´ㅂ`๑)

        setup1:在生成SSH密鑰之前,檢查本地是否有任何現有的SSH密鑰(如果確定沒有,直接跳到setp2)

        打開git bash或支持SSH的工具輸入以下命令

ls -al ~/.ssh

         默認情況下,如果已存在,那麼公鑰的文件名是以下之一

            1、id_dsa.pub

            2、id_ecdsa.pub

            3、id_ed25519.pub

            4、id_rsa.pub

         我使用的是RSA,所以在列表中出現了id_rsa.pub文件(默認路徑是C:\Users\你的計算機名\.ssh)  如果你沒辦法找到,可以使用Everything去搜索這個文件,這是一款windows平臺下能快速定位文件的工具,我非常喜歡。

  使用記事本或任意文本編輯器打開它,複製這個文件下所有的內容,從ssh-rsa開始,到末尾的郵箱,這就是你的公鑰。

        setup2:粘貼下面的文本,替換你的電子郵件地址,這將創建一個使用提供的電子郵件作爲標籤的ssh密鑰。

ssh-keygen -t rsa -b 4096 -C"[email protected]"
        之後會提示保存密鑰的默認路徑C:\Users\你的計算機名\.ssh\id_rsa, enter鍵接受。
在提示符處輸入安全密碼,確認安全密碼,我使用了空密碼,所以是兩次回車。至此結束
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章