1. 程式人生 > >淺談遠程登錄時,ssh的加密原理

淺談遠程登錄時,ssh的加密原理

回車 直接 phrase 允許 輸入密碼 tar continue 兩種 left

登錄方式主要有兩種:

1、基於用戶密碼的登錄方式:

加密原理:

當服務器知道用戶請求登錄時,服務器會把自己的公鑰發給用戶,ssh會將服務器的公鑰存放在客戶端的~/.ssh/known_hosts文件下, 用戶會根據服務器給它發的公鑰進行加密,加密好好之後返回給服務器,服務器用自己的私鑰解密,如果密碼正確,則用戶會成功登錄到服務器上。

如果服務器改變了自己的公鑰,客戶端想要登錄時必須刪除自己~/.ssh/known_hosts文件下的舊內容,重新獲取服務器新的公鑰。只要你知道服務器上的用戶和密碼,就可以成功登錄到遠程服務器上。

命令格式: # ssh user@ip

在你第一次登錄時,界面上會出現如下圖的情形:

 Are you sure you want to continue connecting (yes/no)?

它會給你提示:你確定你要繼續鏈接嗎?,這時,你輸入yes就好。接下來會讓你輸入密碼,只要正確輸入就可成功登錄。

2、基於密鑰的登錄方式:

加密原理:

你自己事先得創建一對密鑰,把自己的公鑰放在你需要登錄的服務器上。當客戶端需要請求密鑰驗證登錄服務器時,服務器收到請求後,服務器就用公用密匙 加密一段隨機字符串並把它發送給客戶端。客戶端收到加密後的隨機字符串之後就可以用客戶端的的私鑰加密再把它發送給服務器,如果服務器上你事先存放的公鑰 解密成功則證明用戶是可信的,直接允許登錄,不再要求密碼。

獲取自己密鑰對的命令格式:$ ssh-keygen

運行上面的命令以後,系統會出現一系列提示,可以一路回車。其中有一個問題是,要不要對私鑰設置口令(passphrase),如果擔心私鑰的安全,這裏可以設置一個。

命令完成後,在~/.ssh/目錄下會生成兩個新文件:id_rsa.pub和id_rsa。前者存放你自己的公鑰,後者存放你自己的私鑰。

然後將自己的公鑰傳到服務器上,該命令格式為:$ ssh-copy-id user@ip

成功登錄後,重啟服務器ssh服務: $ systemctl restart ssh.service

接下來就可以遠程操控服務器了。

淺談遠程登錄時,ssh的加密原理