以node1、node2为例
方法一 利用ssh-keygen生成公钥和私钥
1.原理:在node1上生成公钥和私钥,之后将公钥复制到其他的虚拟机上,虚拟机通过匹配公钥则可以实现免密的操作
2.步骤
(1)连接到node1 [c:\~]$ ssh root@192.168.211.30
(2)进入.ssh目录下进行操作[root@node1 ~]# cd /root/.ssh/
可以通过ls -a或者ll指令查看目录下的文件,查看是否存在私钥和 公钥
(3)通过[root@node1 .ssh]# ssh-keygen命令创建公钥和私钥,如果没有.ssh文件夹将自动创建(之后一直enter键即可,直到出现图片,代码如下图所示)。之后可通过ls指令查看是否生成相应文件。
(4)通过(3)方法查看node2中是否存在.ssh文件,如果没有则进行创建
(5)本次是为了实现node1登录node2免密钥,故应该把node1的公钥复制给node2。故有如下指令 [root@node1 ~]# ssh-copy-id -i root@node2,再次查看node2中的.ssh文件夹时会发现除了私钥和公钥之外增添了新的文件
通过[root@node1 .ssh]# vi authorized_keys指令可以查看authorized_keys中的内容
(6)经过此过程就可实现对node2的免密登录
方法二 通过客户端实现免密登录
以node1和node3为例,软件为Xshall,步骤如下
(1)打开node1
(2)通过软件生成node1的公钥
- 菜单栏中选择工具选项——>新建用户秘钥生成向导
- 之后选项均为默认选项即可,点击下一步
进入用户秘钥信息选项窗口,输入密码,点击下一步即可看到生成的公钥并将其导出
(3)将生成的公钥填入到authorized_keys文件中
(4)对node1与node3进行属性设置
(5)之后登录node3,输入用户名之后跳转到密码栏,选择pubic key选项
(6)至此就可实现了免密
本人现学现卖,如有错误望批评指正,不胜感激