【0】写在前面
由于ssh 实现的是免密码登陆,大致步骤是:
- 0.1) client通过ssh登陆到server;
- 0.2) server检查家目录下的.ssh文件, 并发送公钥文件 authorized_keys 到client ;
- 0.3) client端 接收到 server 端的公钥文件,并用自己的私钥文件对 其进行解析,并计算出 新的 公钥文件C;
- 0.4) server段 接收到 client的 公钥文件C,并将其与 自身的公钥文件,进行匹配,(它有它自己的匹配算法, 这个你不管),如果匹配成功,则client 成功登陆到server;
- (Attention):
看到这里,不得不说建立ssh 免密码登陆的中间过程确实很复杂,所以ssh对配置文件的访问权限,要求相当苛刻。如友人您,不根据本文的访问权限进行相应设置,使得最终无法建立免密码登陆,后果自负(这里只是为了强调 ssh 对 配置文件的访问权限 要求非常得严格!(过来人的感受,仅仅是你配置文件的访问权限不完全正确,ssh 一直无法实现 正常的免密码登陆, 很烧精力)
【1】安装ssh
server installation :sudo yum -y install openssh.i686
client installation: sudo yum -y install openssh-clients
【2】我的任务:hadoop@hadoop0(Client)免密码登录到 hadoop@hadoop1(Server)
- 2.1) 生成需要建立ssh的私钥和公钥(client操作)
-
Attention)
-
A1) ~/.ssh/ 目录必须要是 700 的权限才行!
-
A2)一个要特别注意的就是那个 id_rsa 的档案权限啦!他必须要是 -rw------- !否则在未来密钥比对的过程当中,可能会被判定为危险而无法成功的以公私钥成对档案的机制来达成联机喔。
(不过默认情况下,建立的文件都是符合以上要求的) -
2.2)在server的家目录上建立.ssh文件夹,访问权限设为700(server操作)
-
2.3)将client的公钥档案数据上传到服务器上(client操作)
- 2.4)将server的.ssh文件夹下面的 公钥文件名改为 authorized_keys,且访问权限改为 600 or 644(server操作)
- 2.5) client 免密码登陆到 server