您的位置:首页 > 运维架构 > Linux

关于CentOS7配置SSH免密登录,以及遇到的配置好后还需要输入密码的问题

2017-03-25 14:33 876 查看
Hadoop伪分布式安装,与分布式安装基本一致:

    

    1.准备3个centos7系统,虚拟出三个服务器

        每台服务器上最好都单独创建一个hadoop的用户

    配置本地hosts:

        输入执行:vim /etc/hosts    

            //这是再做DNS映射:加上其他的配置的映射,完整的是

            127.0.0.1    localhost

            192.168.31.132   Hadoop1

            192.168.31.130   Hadoop2

            192.168.31.131   Hadoop3

            192.168.31.131     localhost   ->>这里加的不知道什么意思,加上不会报错 加吧

            

        设置好之后,需要重启服务器:shutdown -r 注意三台服务器都要配置并重启

        

        修改登录的主机名:查看三台主机名分别是不是hadoop1,2,3

        如果不是,输入:hostname hadoop 在输入:hostname

           
    2.安装JDK 略

    CenOS7默认没有启动ssh无秘登录,

        此步骤作用:通过ssh免密码设置,让hadoop能够免密码连接到另一个节点服务器.所有节点之间都应该免密

        (1).进入vim /etc/ssh/sshd_config ,找到以下内容:

            #RSAAuthentication yes

            #PubkeyAuthentication yes

            将注释去掉,三台服务器都要设置

            

            AuthorizedKeysFile .ssh/authorized_keys # 公钥文件路径

            (查找这一行,我的是默认开启的,查找时只查找'AuthorizedKeysFile'部分,全部输入找不到)

            

        (2).给当前服务器用户创建秘钥,秘钥有两个,公钥和私钥,公钥可以公开,

            用户得到公钥给数据加密传递给服务器,用公钥加密,必须用私钥解密

            .ssh文件中隐含目录,看不到,但能访问进去,里面就有公钥id_rsa和私钥id_rsa.pub

    

    

            输入命令:ssh-keygen -t rsa,生成key,都不输入密码,一直回车,

            /root目录下就会生成.ssh文件夹,每台服务器都要设置

                192.168.31.132 Master生成:

                +--[ RSA 2048]----+

                |   o.o.. ...     |

                |  o o.B . .      |

                |   . *.. .       |

                |       .o +      |

                |       oS* +     |

                |        + * .    |

                |         *       |

                |          E      |

                |                 |

                +-----------------+

                

                192.168.31.130 Slave1生成:

                +--[ RSA 2048]----+

                |     ..  .       |

                |     .. E .      |

                |      .o =o.     |

                |     .  .oo.     |

                |    .   S   o o .|

                |     .   o . o = |

                |      . . o . *  |

                |       .   + =   |

                |            o    |

                +-----------------+

                192.168.31.131 Slave2生成:

                +--[ RSA 2048]----+

                |         .o+*o+o.|

                |          oBo+.+o|

                |          .=o.oE+|

                |         .o o  o |

                |        S  .     |

                |       . .       |

                |                 |

                |                 |

                |                 |

                +-----------------+

        ----此步骤在主服务器上做:

        (3)

            合并公钥到authorized_keys文件,,进入/root/.ssh目录,通过SSH命令合并

            把id_rsa.pub追加到授权的key里面去

            cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

            

            修改.ssh权限

            chmod 700 ~/.ssh

            

        (4).修改文件”authorized_keys”权限

            chmod 600 ~/.ssh/authorized_keys

        

        (5).重启ssh服务:service sshd restart

        

        (6).把公钥复制所有的Slave机器上

            / scp ~/.ssh/id_rsa.pub 远程用户名@远程服务器IP:~/

            

            scp ~/.ssh/id_rsa.pub root@hadoop2:~/  -->这是我的主机名 hadoop2,也可以写自己的从服务器ip.例如   scp ~/.ssh/id_rsa.pub root@192.168.31.130:~/

            scp ~/.ssh/id_rsa.pub root@hadoop3:~/   -->这个就是131咯

            

        ------------------------------这些操作在从服务器上操作,

        第一步是创建.ssh文件夹.不用创建了,因为执行ssh-keygen -t rsa,就自动生成了

        

        (2).修改权限:chmod 700 ~/.ssh

            

        (3).追加到授权文件”authorized_keys”

            cat ~/id_rsa.pub >> ~/.ssh/authorized_keys

            

        (4).修改权限:chmod 600 ~/.ssh/authorized_keys

        

        (5).删除无用.pub文件:rm –r ~/id_rsa.pub  -->可以不做

            

        (6).在master主机下进行测试

            ssh 192.168.31.130

            ssh 192.168.31.131

            

        下载并解压Hadoop安装包:

            下载地址:北京信息学院镜像http://mirror.bit.edu.cn/apache/hadoop/common/

            解压命令:tar -xzf /root/你的hadoop包

        

        

    -在设置linux的ssh免密登录时,遇到的最大问题就是,三台或更多服务器设置,由于设置的

    服务器主机名没有改,导致控制台显示的都是这个:[root@localhost],其实已经设置好了

    就是由于名字一样,给你的错觉是设置好后使用 ssh 192.168.31.130测试时,没问题,

    可以访问,并没有做退出处理(exit).再次访问 ssh 192.168.31.131 测试,提示输入密码

    .其实这时,已经登录到ip是130的机器上了.已经连接了,当再次连接131时,是在连接

    130的基础上连接的131,才导致连接不上,输入密码的.

    

    至此,ssh免密登录已经设置好了,耽误了两天的时间:

    参考突然明白的原因的帖子:

        1.http://blog.csdn.net/xiaoguaihu12/article/details/65660546 //此贴提到了设置主机名

        2.http://www.iqiyi.com/w_19rrzup6cd.html  //传智的教程.提到了,连接后退出exit.

   
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: