1. 程式人生 > >linux無密碼登錄

linux無密碼登錄

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失敗。

本文出自 “8450152” 博客,請務必保留此出處http://8460152.blog.51cto.com/8450152/1967111

linux無密碼登錄