1. 程式人生 > >SSH祕鑰遠端登入

SSH祕鑰遠端登入

SSH祕鑰遠端登入

  1. 基於ssh遠端登陸

客戶端首次遠端登入機器的時候會把遠端機器的公鑰儲存在~/.ssh/know_hosts,以後每次登陸到某伺服器的時候都會對比遠端機器的公鑰和存在本機的該伺服器的公鑰,如果不同就會終止登陸,防止黑客偽裝伺服器

  • 如果發現遠端登陸不上的時候,首先檢查sshd服務是否開啟,再檢查是否是know_hosts檔案。以前可以登陸現在不行,一般是系統有過重灌但是IP並未隨著改變,導致以前的公鑰匹配不上現在的公鑰
  1. 基於祕鑰遠端登陸
1. ssh key使用非對稱加密方式生成公鑰和私鑰
2. 私鑰存放在~/.ssh目錄下,在/etc/ssh/sshd_config中有定義私鑰檔案位置“AuthorizedKeysFile      .ssh/authorized_keys”
3. 公鑰用於對外開放,存放在伺服器的~/.ssh/authorized_keys中
4. ssh-add命令可以新增自定義名稱的key
5. 伺服器把相關的公鑰和私鑰存在/etc/ssh/key中
  • A伺服器建立祕鑰
-t:指定要建立的金鑰型別。
-C:添加註釋;
-f:指定用來儲存金鑰的檔名;
// 建立一個rsa型別的祕鑰,備註為lishengsheng,預設一路回車
[[email protected] .ssh]# ssh-keygen -t rsa -C lishengsheng 
// 會在/root/.ssh目錄下生成一個公鑰一個私鑰
[[email protected] .ssh]# ls       
id_rsa  id_rsa.pub  known_hosts

  • 將A伺服器公鑰傳送到B伺服器,輸入密碼後自動建立authorized_keys檔案

[[email protected] .ssh]# ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]

//然後A伺服器的root使用者就可以免密碼登陸B伺服器了
[[email protected] .ssh]# ssh [email protected]
Last login: Wed Sep 26 23:40:52 2018 from 192.168.1.3
[[email protected] ~]# 
//想使用普通使用者免密碼登陸,將公鑰發往普通使用者輸入密碼後即可
[[email protected]
~]# ssh-copy-id ~/.ssh/id_rsa.pub [email protected] [[email protected] ~]# ssh [email protected] Last login: Thu Sep 27 01:03:36 2018 [[email protected] ~]$
  • 可能遇到的錯誤
no route to host        #防火牆沒關
Connection refused      #防火牆或sshd服務沒開
  1. Xshell 下使用祕鑰登陸
  • 生成祕鑰
    在這裡插入圖片描述
  • 將祕鑰內容複製,寫入對應伺服器的~/.ssh/authorized_keys 中
    在這裡插入圖片描述
    在這裡插入圖片描述

然後即可直接祕鑰登陸了
在這裡插入圖片描述