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

圖片描述
首先,假設咱們有兩臺服務器,服務器名稱分別是 master 和 slave1,咱們如今須要作的就是在服務器 master 上面登陸 服務器 slave1 不須要輸入密碼就能夠登陸成功,以下圖所示。服務器

圖片描述

下面開始咱們的配置步驟ssh

一、服務器 master 上生成密鑰加密

能夠經過使用 ssh-keygen 命令來生成,咱們能夠先使用 man 命令或者是 help 命令查看具體須要哪些參數以及具體信息。spa

圖片描述

經過執行命令 ssh-keygen -t rsa 來生成咱們須要的密鑰。圖片

圖片描述

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

圖片描述

咱們看到有四個文件,下面分別解釋下每一個文件是幹什麼用的。it

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

id_rsa: 生成的私鑰文件class

id_rsa.pub: 生成的公鑰文件登錄

known_hosts: 已知的主機公鑰清單

二、遠程密鑰登陸

這裏介紹最經常使用的三種方式,一是經過 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 免密鑰登陸就大功告成。下面給你們說說免密鑰登陸的原理,有興趣的能夠看看。

首先來看下原理圖

圖片描述

一、ssh 客戶端向 ssh 服務器端發送鏈接請求

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

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

四、ssh 客戶端向服務器端發送加密事後的信息

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

六、若解密以後的信息和以前發送的信息匹配,則信任客戶端,不然不信任。

PS:若是以爲文章不錯的話,還請你們點贊分享下,算是對個人最大支持。
圖片描述

相關文章
相關標籤/搜索