linux無密碼登錄

關於這個小操作,糾結了很久,剛開始就是兩步走:

ssh-keygen -t rsa 三次回車生成密鑰對

ssh-copy-id -i /root/.ssh/id_rsa.pub 1.1.1.1 回傳公鑰到需要ssh的服務器


後來發現了ssh-key -N "" -f /root/.ssh/id_rsa這個命令,可以跳過回車,直接生成,如獲至寶。


再後來,發現ssh-copy-id也麻煩,發現了cat /root/.ssh/id_rsa.pub > /root/.ssh/authorized_keys這個小技巧,但是思維定式,一直通過cat來生成自動認證文件authorized_keys。


最後的終結版:cp /root/.ssh/id_rsa.pub /root/.ssh/authorized_keys,直接複製即可。


所以步驟仍是兩個:

  1. ssh-keygen -t rsa  -N  “” –f  /root/.ssh/id_rsa

  2. cp /root/.ssh/id_rsa.pub /root/.ssh/authorized_keys


需要注意的是,由於目前通常工作中的需求是,服務器集羣所有節點互信,所以做完這兩個操作之後,再ssh登錄所有節點,生成known_hosts文件,然後把整個/root/.ssh 目錄scp到所有節點,即可所有節點之間互信,如果authorized_keys文件存儲有其他公鑰,則不能直接copy生成,還是需要通過

cat /root/.ssh/id_rsa.pub >>   /root/.ssh/authorized_keys 來追加到之前的密鑰之後,避免覆蓋掉之前的公鑰。


具體/root/.ssh/目錄下的文件作用如下

authorized_keys  用於跟遠端Client的私鑰比對的公鑰,放在需要ssh的server端 

id_rsa  用於跟server端的公鑰比對的私鑰,放在Client端

known_hosts 用於存儲已經ssh過的主機的指紋信息,如果指紋信息和主機名或主機IP地址對應出錯,則會有告警提示甚至無法ssh

id_rsa.pub  生成密鑰對的原始公鑰文件,在生成authorized_keys之後,這個文件就可以刪掉了


另外,id_rsa爲固定名稱,更改會導致無密碼ssh失敗。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章