SSH配置—Linux下實現免密碼登錄


首先,假設我們有兩台服務器,服務器名稱分別是 master 和 slave1,我們現在需要做的就是在服務器 master 上面登錄 服務器 slave1 不需要輸入密碼就可以登錄成功,如下圖所示。

 

下面開始我們的配置步驟

1、服務器 master 上生成密鑰

可以通過使用 ssh-keygen 命令來生成,我們可以先使用 man 命令或者是 help 命令查看具體需要哪些參數以及具體信息。

 

通過執行命令 ssh-keygen -t rsa 來生成我們需要的密鑰。

 

執行上面的命令時,我們直接按三次回車,之后會在用戶的根目錄下生成一個 .ssh 的文件夾,我們進入該文件夾下面並查看有哪些內容。

 

我們看到有四個文件,下面分別解釋下每個文件是干什么用的。

authorized_keys: 存放遠程免密登錄的公鑰,主要通過這個文件記錄多台機器的公鑰。

id_rsa: 生成的私鑰文件

id_rsa.pub: 生成的公鑰文件

known_hosts: 已知的主機公鑰清單

 

2、遠程密鑰登錄

這里介紹最常用的三種方式,一是通過 ssh-copy-id 命令,二是通過 scp 命令,三是手工復制。

 

方式一,通過 ssh-copy-id 命令設置。最后一個參數是我們要免密鑰登錄的服務器 ip 地址。

ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.1.100

 

 

方式二,通過 scp 命令直接將該文件遠程復制過去,使用這種方式需要注意,如果你之前已經配置了其它服務器上的密鑰,這是使用這種方法,就會覆蓋掉你原來的密鑰,這時候是不建議使用這種方式的,如果你是先將該文件復制到服務器上的一個目錄下,然后在使用追加的方式,將密鑰追加到 authorized_keys 也是完全 OK 的。如果你只有兩台服務器也是可以直接復制到文件。

scp -p ~/.ssh/id_rsa.pub root@<ip>:/root/.ssh/authorized_keys

 

 

方式三,通過手工復制。將本地 id_rsa.pub 文件的內容拷貝至遠程服務器的 ~/.ssh/authorized_keys 文件中也完全可以的。先使用 cat 命令查看當前的公鑰,然后復制,在到目標服務器上去粘貼。

 

以上步驟,我們就完成了免密鑰登錄,下面我們來進行驗證。

 

到此,我們的 ssh 免密鑰登錄就大功告成。下面給大家說說免密鑰登錄的原理,有興趣的可以看看。

 

首先來看下原理圖

 

 

1、ssh 客戶端向 ssh 服務器端發送連接請求

2、ssh 服務器端發送一個隨機的信息

3、ssh 客戶端使用本地的私鑰對服務器端發送過來的信息進行加密

4、ssh 客戶端向服務器端發送加密過后的信息

5、ssh 服務器端使用公鑰對該信息進行解密

6、若解密之后的信息和之前發送的信息匹配,則信任客戶端,否則不信任。

 

 

PS:如果覺得文章不錯的話,還請大家點贊分享下,算是對我的最大支持。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM