轉自:https://www.cnblogs.com/hukey/p/6248468.html
SSH登錄方式主要分為兩種:
1. 用戶名密碼驗證方式
說明:
(1) 當客戶端發起ssh請求,服務器會把自己的公鑰發送給用戶;
(2) 用戶會根據服務器發來的公鑰對密碼進行加密;
(3) 加密后的信息回傳給服務器,服務器用自己的私鑰解密,如果密碼正確,則用戶登錄成功。
2. 基於密鑰的登錄方式
說明:
(1) 首先在客戶端生成一對密鑰(ssh-keygen);
(2) 並將客戶端的公鑰ssh-copy-id 拷貝到服務端;
(3) 當客戶端再次發送一個連接請求,包括ip、用戶名;
(4) 服務端得到客戶端的請求后,會到authorized_keys中查找,如果有響應的IP和用戶,就會隨機生成一個字符串,例如:qwer;
(5) 服務端將使用客戶端拷貝過來的公鑰進行加密,然后發送給客戶端;
(6) 得到服務端發來的消息后,客戶端會使用私鑰進行解密,然后將解密后的字符串發送給服務端;
(7) 服務端接受到客戶端發來的字符串后,跟之前的字符串進行對比,如果一致,就允許免密碼登錄。