SSH免密码登录,配置多台机器互信,默认需要密码登录,
如下:
相关配置:
在需要配置互信的机器上,如从A登录B,A=>B
则在A机器生成密钥,即:公钥和私钥,公钥用来发布到各个机器上作为凭证,
1、生成密钥
在A机器上运行命令
ssh-keygen -t rsa
则会生成相应的密钥,
通过以上命令会生成几个密钥文件,
生成在~/.ssh目录下:
说明:
authorized_keys:其实就是存放各个机器公钥的地方,
id_rsa.pub 为公钥信息,
id_rsa : 生成的私钥文件,
id_rsa.pub : 生成的公钥文件,
know_hosts : 已知的主机公钥清单,
设置互信其实就是将id_rsa.pub公钥信息发送到需要被信任的机器上的authorized_keys文件中即可,也就是A发送到B上authorized_keys文件中
注:
如果希望ssh公钥生效需满足至少下面两个条件(也就是说如果使用其他用户操作的话满足这些权限,如果是root用户的话,已经是最大权限,所以不用设置):
1) .ssh目录的权限必须是700
2) .ssh/authorized_keys文件权限必须是600
2、发送密钥:
在A 机上运行
ssh-copy-id root@192.168.x.x
如果ssh-copy-id执行不了的话(没有ssh默认库的情况),可以使用scp进行发送,即:
scp -p ~/.ssh/id_rsa.pub root@192.168.x.x:/root/.ssh/authorized_keys
通过以上命令,
即可将公钥发送过去,发送过去之后可以登录B机器查看authorized_keys文件,可以看到了机器A的公钥信息,如过是多个机器发送给B的话则保存多个公钥信息,如下:
发送成功之后,再次ssh登录,从A机器登录到B 机器,
ssh 192.168.16.252
则可以不用密码直接登录了。