1. 程式人生 > >ssh登入原理及免輸密碼登入

ssh登入原理及免輸密碼登入

先驗知識

ssh登入需要用到公鑰、祕鑰,它們用於對文字內容進行加密或解密。通常用RSA加密方式,其是一種對稱加密,由公鑰加密的內容私鑰可解密、由私鑰加密的內容公鑰也可解密。

 

通過ssh登入遠端主機通常有兩種登入方式:

1、輸密碼登入:每次登入都要輸密碼。內部原理:登入時服務端傳送服務端自己的公鑰給客戶端,客戶端用該公鑰加密密碼併發送到服務端,服務端用對應的私鑰解密,檢查密碼是否正確以確定是否登入成功。

2、祕鑰登入(免密碼登入):預先配置好祕鑰,之後每次登入無需輸密碼。方法是在一臺機器上生成公鑰/私鑰對並將其中一個祕鑰放到另一個機器上。有兩種:

2.1、公鑰登入:事先將客戶端的公鑰放到服務端上(本質上相當於配置免密登入白名單)。內部原理:登入時服務端傳送一個隨機字串給客戶端,客戶端用自己的私鑰加密併發送到服務端,服務端根據是否有事先儲存的公鑰能進行解密以確定是否登入成功。

2.2、私鑰登入:事先將服務端的私鑰放到客戶端上,每次登入時需要指定私鑰

前一種方式需要對服務端進行配置,若要免密登入的客戶端很多,則需要頻繁修改服務端配置;後一種可以避免頻繁更改服務端,但比較不安全因為私鑰是不宜外洩的,這種模式只要有私鑰的人就能訪問B,但是例如阿里雲伺服器就是這種訪問方式。