我們在搭建集群環境時會用到很多主機,主機之間需要互相訪問,如果每次訪問都需要登錄就很麻煩,那么如何實現虛擬機之間的免密登錄呢?
公鑰和私鑰
在正式介紹免密登錄前我們先來看一組概念:公鑰和私鑰
現有兩台主機,主機A需要給主機B發送消息,這個消息需要加密,那么B主機首先要生成一對公鑰和私鑰
,然后B主機將自己的公鑰發送給A,A用B發送過來的公鑰對這個"hello"進行加密,然后給B發送過去,B收到消息后再利用自己的私鑰進行解密
實現免密登錄
現在在我的電腦上有三台虛擬機node01、node02和node03
1.生成公鑰和私鑰
首先需要在三台主機上分別生成公鑰和私鑰,輸入下面的命令(記住三台主機都需要執行這個命令)
ssh-keygen -t rsa
提示不用管,一路回車即可,看到下面的頁面表示創建成功
2.將公鑰復制到其他主機
第二步就需要將自己的公鑰復制到其他主機上面
在node01、node02和node03三台主機上面分別執行ssh-copy-id node01
執行完成后執行 scp /root/.ssh/authorized_keys node02:/root/.ssh和scp /root/.ssh/authorized_keys node03:/root/.ssh命令
scp /root/.ssh/authorized_keys node03:/root/.ssh
這個命令是遠程拷貝命令,可以將本機上面的文件拷貝到其他主機上面
所有命令執行完成后我們可以在node01用ssh node02命令看是否可以登錄node02
可以看到,登錄成功。