虚拟机centos6.5 --ssh免密码登录

说明:此处是以hadoop虚拟机3台机器为背景进行设置,即master、slave01、slave02

1、在master上,生成公钥、私钥

   用hadoop用户登录系统,进入个人主目录,即/home/hadoop,执行命令 

ssh-keygen -t rsa -P ''

   说明:以rsa算法,生成公钥、私钥,-P '',表示是空密码;该命令执行完后,会在个人主目录下生产.ssh目录,里面会有两个文件,id_rsa(私钥)和id_rsa.pub(公钥);该目录为隐藏目录,可用以下命令查看:

ls -lah

2、导入公钥

   进入.ssh目录,执行以下命令:

cat id_rsa.pub >> authorized_keys

chmod 600 authorized_keys #修改文件权限

   本机测试,ssh localhost,如果不需要密码可以登录,说明连接成功。

3、在其他机器上同样生成公钥、私钥,并将公钥文件复制到master机器

   3.1 用hadoop用户登录到slave01、slave02,执行 ssh-keygen -t rsa -P '' 生成公钥、私钥

   3.2 用scp将公钥文件拷贝到master机器上

      slave01: scp .ssh/id_rsa.pub hadoop@master:/home/hadoop/id_rsa_01.pub

      slave02: scp .ssh/id_rsa.pub hadoop@master:/home/hadoop/id_rsa_02.pub

      执行后,在master机器上,查看/home/hadoop目录,里面会有id_rsa_01.pub和id_rsa_02.pub两个文件,然后在master机器上,导入这两个公钥

      cat id_rsa_01.pub >> .ssh/authorized_keys

      cat id_rsa_02.pub >> .ssh/authorized_keys

      这时,master机器就有3台机器的公钥了。

4、将master上的公钥,复制到其他机器上

   4.1 在master机器上执行以下命令 

scp .ssh/authorized_keys hadoop@slave01:/home/hadoop/.ssh/authorized_keys
scp .ssh/authorized_keys hadoop@slave02:/home/hadoop/.ssh/authorized_keys

   4.2 在其他机器上修改authorized_keys文件的权限

chmod 600 .ssh/authorized_keys

5、验证

  每两台机器之间进行互连,看是否能无密码登录,命令:ssh 机器名。

 

  常见错误1:提示 bash: ssh: command not found

  解决:yum -y install openssh-clients

  常见错误2:在使用scp的时候会让输入master机器的hadoop用户密码

  解决:提前把hadoop的密码设置好,passwd hadoop

posted @ 2015-09-15 10:05  bookwed  阅读(1862)  评论(0编辑  收藏  举报