ssh免密登入配置+除錯講解(超詳細)+原理解析
阿新 • • 發佈:2019-01-02
有寫的不對的地方,歡迎各位同學評論指正,博主會進行修改。
前言叢集搭建中,常常需要配置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,說:你看看對不對
恩~毫無PS痕跡。。。 1、需要在node1上生成公鑰以及私鑰,而id_rsa就是私鑰,id_rsa.pub檔案就是公鑰檔案。私鑰我們這裡就不用了,就用公鑰,用完了為了保證安全性,你可以選擇刪掉,也可以不刪,根據你的喜好決定,也就是pub檔案
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
這三項需要註釋掉,按博主圖片中這樣就好。 除錯中若是還有其他情況,博主並未遇過,讀者可根據報錯進行百度 博文不僅僅是防止知識點忘記,也是回饋眾多作者們的教導,以此回饋社會