最近在学校做一个云计算大赛,需要搭建一个 hadoop 的平台(一共四台服务器,这是一个怎样的 hadoop 啊),搭建的中途遇到一个小插曲。
由于需要四台服务器能够互相免密访问,我们需要将四台服务器的公钥互相上传到各个机器,首先运行

ssh-keygen -t rsa

然后一直回车,最后会在你主目录下生成一个.ssh 目录,其中的 id_rsa 是你的密钥,id_rsa.pub 是你要上传的公钥,known_hosts 是你连接过的主机的信息

我们需要在.ssh 目录下建立一个 authorized_keys 文件,将各个主机的公钥信息存储在该文件下,然后各个主机就可以通过 ssh 免密登录了,至于具体的原理,大家可以网上自行科普一下,无非是一些加密解密的过程。

然而就在我以为万无一失的时候,造化弄人,我不管怎么搞都需要输密码,试过改 ssh 的配置文件也无法解决,最后 google 到一个解决方法,说是目录的和文件的权限问题,.ssh 目录的权限必须得是 700,而文件 authorized_keys 的权限必须是 644,而我当时是 664, 这才导致无法进行免密登录,这里大家需要注意一下权限的问题,即使权限放大了也是不行的!