1,免密场景
很多用户和场景是需要实现机器之间 用户免密登录的。例如hadoop 集群,oracle rac等等。
2,常规免密操作 ----- 这种方式最简单直接,但是是2点之间的
机器A: 192.168.1.1
机器B: 192.168.1.2
需求:要求在机器A 上可以使用root用户免密登录到机器B(注意,这里登录B 也是使用的root用户)
步骤:
(1),机器A上创建自己的ssh 秘钥
ssh-keygen -t rsa -P '' 一路回车就好
(2),将自己的公钥给到目标机器B
ssh-copy-id -i ~/.ssh//id_rsa.pub root@192.168.1.2
(3),完成免密登录
测试:
在机器A上root登录
]#ssh root@192.168.1.2 即可。
3,多机器免密登录
机器A:192.168.1.1
机器B: 192.168.1.2
机器c: 192.168.1.4
需求:
在机器A上,能通过普通用户test 免密登录到机器B C
方法一
步骤:(操作都使用test用户执行)
(1)机器A,B,C上创建自己的ssh 秘钥
ssh-keygen -t rsa -P '' 一路回车就好
(2)将机器A,B,C上的id_rsa.pub文件,全部追加到~/.ssh/authorized_keys中
注意秘钥和authorized_keys的权限,文件所属人是test
将~/.ssh/authorized_keys 全部传到机器B,C上(如果要满足3个互相免密,则全部传)
(3)完成免密登录
测试:
在机器A上root登录
]$testssh test@192.168.1.2
]$testssh test@192.168.1.3
即可
方法二:
步骤(test用户执行下面所有操作):
最直接粗暴的办法,就是在机器A 上直接生成秘钥
ssh-keygen -t rsa -P '' 一路回车就好
然后将test用户 ~/.ssh/ 整个目录全部复制到机器B,C上就可以了
Q&A
常见问题:
问题:通过上面步骤,发现普通用户登录总是提示pemmission deny
原因:1,普通用户的家目录权限有问题,普通用户 的家目录权限不能为777,
2,普通用户的.ssh目录,和秘钥所属人权限可能有问题。
问题:发现手动创建.ssh目录(权限为700),怎么都无法免密码登录,使用ssh-keygen -t dsa自动创建.ssh目录(权限为700),就可以免密码登录,此问题可以通过修改文件安全上下文来解决
restorecon .ssh .ssh/authorized_keys