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