首先,假設咱們有兩臺服務器,服務器名稱分別是 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:若是以爲文章不錯的話,還請你們點贊分享下,算是對個人最大支持。