什么是ssh,它是如何做到對信息進行加密操作的

在早期的遠程連接服務器采用的是明文傳輸的軟件,比如telnet、rsh,后來它們都ssh協議取代了。ssh服務是可以提供信息加密后再對數據進行傳輸,安全性大大提高。ssh有兩個主要的功能:

  • 能夠連接遠程主機,對主機的資源進行管理

  • 能夠進行文件的傳輸,類似ftp服務

SSH加密技術

SSH使用了非對稱加密技術,關于什么是對稱加密以及非對稱加密,讀者想要更深入的了解請自行谷歌。非對稱加密主要通過公鑰與私鑰來完成的,其中公鑰對發送的信息進行加密,接受到信息后,使用私鑰對信息進行解密。

  • 公鑰(Public key):給發送給對方主機的信息進行加密的行為,所以你的主機公鑰可以給想要進行通信的另外主機。

  • 私鑰(Private key):當遠程主機給當前主機發送了進行公鑰加密的信息后,當前主機利用自己的私鑰來對該信息進行解密。記住,你的私鑰千萬不能讓其他主機知道。

下面通過圖解來說明兩臺主機如何進行通信的

首先,當主機A想要給主機B發送信息時,先用主機B的公鑰對將要發送的信息進行加密,當主機B收到主機A發送來的加密后的信息時,使用自己的私鑰將信息解密。同理,主機B發送信息給主機A時,先用主機A的公鑰對信息加密,然后收到加密后的信息的主機A,用自己的私鑰對其解密。

連接遠程主機的流程

下面來看本地客戶機是如何連接上遠程的服務器的

  1. 當服務器第一次啟動sshd服務時,自動生成公鑰及私鑰。這些文件存放在/etc/ssh/目錄下。

  2. 本地主機通過終端工具或其他方法對服務器發起請求連接。

  3. 收到客戶端請求后,服務器將自己的公鑰發送給客戶機

  4. 客戶機若之前沒有保存服務器的公鑰,那么就會將公鑰保存客戶機上面。對于windows系統,該公鑰存放在C:Usersadmin.sshknown_hosts文件內,若是linux主機,則保存在家目錄的.ssh/know_hosts文件內。

  5. 客戶機將自己的公鑰發送給服務器,服務器保存客戶端的公鑰。

  6. 客戶機和服務器進行通信。

更多相關技術文章,請訪問linux系統教程欄目!

? 版權聲明
THE END
喜歡就支持一下吧
點贊6 分享