美文网首页
集群免秘钥登陆

集群免秘钥登陆

作者: 高光 | 来源:发表于2016-04-19 15:08 被阅读0次

    作者:杜延振

    日期:2016/3/29

    1.在用户目录下执行命令

    ssh-keygen -t rsa

    一路回车:

    2.在当前用户目录下,进入.ssh文件夹(.ssh文件夹为隐藏文件夹,直接进去即可)。

    在.ssh文件夹下执行命令:

    cat id_rsa.pub > authorized_keys

    即把id_rsa.pub文件的内容写进authorized_keys文件中

    此时运行命令:ll

    查看生成的authorized_keys文件的权限,如果没错的话该文件应该带有写权限,当有写权限时,是不能进行无密钥登陆的,因为此时不安全。

    修改authorized_keys文件的权限:

    chmod go-xw -t authorized_keys

    此时再执行命令:ssh h2(因为我把本机的hostname改成了h2,所以ssh h2代表登陆本机,其中ssh后面应改成你自己对应的:可查看刚生成的文件authorized_keys

    则不会再让输入密码。如下图:

    至此,就实现了本机无密钥登陆。

    3.把剩余的机器在其对应机器上重复步骤1,2.

    4.把各个机器上生成的authorized_keys文件的内容合并成一个,并用该文件替换每个机器上的authorized_keys文件,如图:

    至此即可实现各个机器之间无密钥登陆

    补充:若只是实现master免秘钥登陆到slave节点,只将master节点生成公钥复制到各个slave节点就能实现目的。

    原理:Master(NameNode | JobTracker)作为客户端,要实现无密码公钥认证,连接到服务器Salve(DataNode |Tasktracker)上时,需要在Master上生成一个密钥对,包括一个公钥和一个私钥,而后将公钥复制到所有的Slave上。当Master通过SSH连接Salve时,Salve就会生成一个随机数并用Master的公钥对随机数进行加密,并发送给Master。Master收到加密数之后再用私钥解密,并将解密数回传给Slave,Slave确认解密数无误之后就允许Master进行连接了。这就是一个公钥认证过程,其间不需要用户手工输入密码。重要过程是将客户端Master复制到Slave上。

    相关文章

      网友评论

          本文标题:集群免秘钥登陆

          本文链接:https://www.haomeiwen.com/subject/ifjslttx.html