遠程登錄一般有兩種方式:
* 密碼登錄:客戶端發出授權請求時,服務端要求輸入密碼進行驗證授權
* 密鑰登錄:客戶端發出授權請求時,服務端根據事先配置的密鑰驗證身份并授權
配置步驟
1. 客戶端生成密鑰對,包括公鑰、私鑰
2. 私鑰配置在本地,將公鑰發送給服務端
3. 服務端將客戶端的公鑰加入到授權列表
執行原理
1. 客戶端發出遠程登錄請求 用戶名@服務端主機名或者IP
2. 服務端查看是否有 該用戶名 的公鑰
3. 如果有,服務端生成隨機字符串,并用公鑰加密(就是隨機字符串與公鑰作某種運算),發送給客戶端
4. 客戶端利用本地的私鑰對字符串解密(逆運算)。
5. 客戶端將解密后的字符串結果發送給服務端
6. 服務端利用解密的字符串與原始字符串匹配,如果相等,驗證通過,并授權給客戶端。
配置ssh步驟
1. 客戶端生成密鑰對 `ssh-keygen -t rsa (-f ~/.ssh/id_rsa) -C "comment"`
2. 拷貝公鑰到服務器 `scp id_rsa.hub servername@ip:/home/usernam/`
3. 在服務器端將公鑰添加至授權列表
1. `touch authorized_keys`
2. authorized_keys文件權限必須為600 `chmod 600 authorized_keys`
3. 追加公鑰信息到授權文件中 `cat ~/id_rsa.pub >> authorized_keys`
4. 客戶端登陸 `ssh -i id_rsa servername@ip`