场景:
现在有4台机器,分别是
master
node1
node2
node3
现在需要配置从master无密码ssh登录到node1,node2,node3。
(这里有root用户为例,有些系统可能默认不支持root用户ssh登录,需要改改ssh配置文件)
1、生成key
在所有机器上生成key:
ssh-keygen
2、复制key
登录到master,切换到家目录下的.ssh目录下,将公有钥写到authorized_keys文件,如下:
[root@master .ssh]# cat id_rsa.pub >> authorized_keys
然后将文件authorized_keys复制到其他各个节点,如node1,node2,node3。
使用scp复制:
[root@master .ssh]# scp authorized_keys node1:/root/.ssh/
[root@master .ssh]# scp authorized_keys node2:/root/.ssh/
[root@master .ssh]# scp authorized_keys node3:/root/.ssh/
在输完scp命令之后,需要输入密码,输入远程机器的密码就好。
如果复制的时候,遇到以下问题:
scp: /root/.ssh/: Is a directory
很可能是远程机器上没有这个目录,有可能是刚才忘记在这台机器上做ssh-keygen命令。解决方法就是ssh登录到这台机器,然后执行ssh-keygen命令。
3、测试连接
输入ssh node1命令,登录node1节点,此时,无需输入密码,如下:
[root@master .ssh]# ssh node1
Last login: Fri Nov 11 13:10:39 2016 from 172.16.41.53
[root@node1 ~]#