用户SSH免密登录

环境:SUSE 11 64位

系统的结构:两台服务器A、B;A为主机,主机名为namenode,有个用户hadoop;B为从机,主机名为datanode,有个用户hadoop。

在A机、B机的/etc/hosts中把对方的机器名写好,确保ping机器名能ping通,如下:

A机的IP地址 namenode

B机的IP地址 datanode

配置SSH免密码登录步骤:

1、在A机使用hadoop用户。参考命令:su - hadoop

2、在hadoop的home目录下。参考命令:cd ~

3、建立.ssh文件夹,不要漏了ssh前的.号。参考命令:mkdir ~/.ssh

4、在.ssh文件夹中,运行ssh-keygen,生成id_rsa和id_rsa.pub。

系统询问存放路径(Enter file in which to save the key)、输入口令(Enter passphrase)、再次输入口令(Enter same passphrase again),都可以直接回车采用默认。在.ssh文件夹中就会生成id_rsa、id_rsa.pub两个文件。这两个文件含有秘钥信息。

参考命令:ssh-keygen

5、秘钥文件id_rsa.pub拷贝到.ssh目录下的authorized_keys文件夹。参考命令:cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys

6、在A机上运行ssh localhost,免密码登录自己。参考命令:ssh localhost

7、在B机hadoop用户的home目录下也建立.ssh文件夹。

8、把A机的秘钥文件拷贝到B机的.ssh文件夹中,将A机的密码传给B机。参考命令:在A机上运行 scp ~/.ssh/authorized_keys hadoop@datanode:~/.ssh/

9、在A机上尝试免密码登录B机,如果不需要输入密码就 登录,则表示成功。参考命令:在A机上运行 ssh datanode

10、A机到B机的免密码登录已经完成,但不意味着B机到A机的可以免密码登录。如果需要B机到A机,需要在B机上重复1-9步骤。在hadoop集群中,如果集群规模不大,可以把所有的namenode与dataNode做双向SSH免密码登录。hadoop文档上说,只需要namenode与dataNode单向免密码登录(即主机往从机可以免密码登录),但实践情况来看,单向通会有各种各样麻烦的问题。

原文地址:https://www.cnblogs.com/alpha118/p/6694341.html