1. 程式人生 > >ssh免密登入配置+除錯講解(超詳細)+原理解析

ssh免密登入配置+除錯講解(超詳細)+原理解析

有寫的不對的地方,歡迎各位同學評論指正,博主會進行修改。

叢集搭建中,常常需要配置ssh免密登入,而每臺機器情況不一樣,本來博主認為沒多少東西,結果,博主第一次配時候沒多久就Ok了,然後,第二次,第三次就卡住了,並且,博主發現,網上很多ssh免密,你可能搜到三篇,三篇都不一樣!而且噼裡啪啦按部就班操作之後,無從驗證,只是最後會發現出錯了。。。。

今天,博主第三次配置ssh,並且搜全了各種情況,然後外加出錯後怎麼找原因,就像除錯程式一樣,保證出手的東西絕對正確。

1、環境說明

環境就不進行說明了,比較三次配置,一個配過九臺,每每情況各有不同。只能告知各位讀者,博主這裡使用的是red hat紅帽,估計centOS也差不太多,不過有差異也無妨,學會博主方法,相信你就不會矇蔽了,知道怎麼往對的方向走了

2、場景說明

要求node1免密登入到node2,這裡任選了一個使用者,也即是
[[email protected] .ssh]$ ssh node2


3、ssh登入原理過程


這裡看不懂也沒關係,樓主詳解一番: node1傳送一個請求,問:node2,你在不在?我想連線你 node2查詢本地是否有node1的公鑰,情況一:沒有,情況二:有 情況一: node2回覆說:我在!你的公鑰告訴我一下。 node1再次傳送過去,自己的公鑰, node2在本地進行計算,儲存,得到的一串通過公鑰得到的不知道什麼鑰,返回給node1,說:你看看對不對
node1告知node2:對!咱們已經建立連線了 node2警惕的回覆node1:你知道我登入密碼多少嗎? 使用者輸入密碼..... node1把密碼封裝了發過去:你看是這個不? node2回覆:對,咱們已經建立連線! 情況二: node2一看本地有node1的公鑰,心想原來認識的,然後通過公鑰計算出一個不知道什麼鑰匙,回覆:你看看是這個鑰匙嗎? node1告知node2:對!咱們已經建立連線了 node2回覆node1:連線建立成功! 具體幾次握手,博主不知道,大致就是這麼個過程 ssh配置中,會用到下面幾個檔案:
恩~毫無PS痕跡。。。 1、需要在node1上生成公鑰以及私鑰,而id_rsa就是私鑰,id_rsa.pub檔案就是公鑰檔案。私鑰我們這裡就不用了,就用公鑰,用完了為了保證安全性,你可以選擇刪掉,也可以不刪,根據你的喜好決定,也就是pub檔案
2、authorized檔案,是為了方便node2的,不用詢問node1的公鑰本地檔案,這個單詞讀者們需要記住,要建立這個檔案! 3、known_hosts,表名node2是認識的主機,這個不用配置,讀者可以不用管,可以作為了解原理。比如,一臺新系統,.ssh目錄下你會發現沒有這個檔案,但在你第一次ssh以後,這個檔案就會生成。 簡單說明:               上面做了原理說明,簡單來說:就是node1想要連線node2免密登入node2,需要把node1的id_rsa.pub檔案內容寫進node2的authorized_keys裡面。就大功告成了

4、最簡單配置

4.1、生成公鑰以及金鑰:

在node1上:
[[email protected] ~]$ ssh-keygen -t rsa
一路回車。 若是不想回車,可在上面程式碼末尾加上,-P ""

4.2、處理

方法一:

將node1的公鑰拷貝到node2

node1上(小心別把node2的id_rsa.pub覆蓋掉)
[[email protected] .ssh]$ scp -p id_rsa.pub [email protected]:~/.ssh/id_rsa.pub1

然後,node2將公鑰加入自身認證

在node2上:
[[email protected]]$ cat id_rsa.pub1 > authorized_key
驗證檢視檔案authorized_key中是否有id_rsa.pub1檔案的內容 方法二:

直接把自己金鑰拷貝到需要免密的機器上:

ssh-copy-id -i ~/.ssh/id_rsa.pub 使用者名稱@ip
將金鑰檔案直接拷貝到指定使用者名稱、ip。輸入密碼後,下次你當前使用者執行ssh到剛剛指定的使用者名稱ip就不用再輸入密碼了。 方法二較方法一方便很多

4.4、驗證:node1連線node2

在node1上:
[[email protected] .ssh]$ ssh [email protected]
樓主這裡沒有截圖,不用輸入密碼發現主機名變了即為成功


5、除錯及常規報錯解決

5.1、說明

     系統日誌:/var/log/secure,是個不知道幹什麼用的日誌。ssh連線失敗的報錯,在這裡記錄

5.2、報錯


解決:相關目錄許可權不對,一下列出相關許可權。讀者根據具體去修改        1、755                ~        2、700                ~/.ssh        3、644                ~/.ssh/authorized_keys(博主實測,600也可,具體的讀者試試也就知道了,也不麻煩) 配置檔案選項未開(無圖) 這裡樓主沒有碰到過,所以沒有圖,各位讀者碰到修改了就好 解決:vi    /etc/ssh/sshd_config
這三項需要註釋掉,按博主圖片中這樣就好。 除錯中若是還有其他情況,博主並未遇過,讀者可根據報錯進行百度 博文不僅僅是防止知識點忘記,也是回饋眾多作者們的教導,以此回饋社會