美文网首页大数据学习
【Hadoop完全分布式】ssh批量设置免登陆脚本(1)

【Hadoop完全分布式】ssh批量设置免登陆脚本(1)

作者: Formatfa | 来源:发表于2019-01-25 11:41 被阅读0次

    1. .ssh目录的文件

    a.known_hosts

    第一次登录的机器在known_hosts文件里没有记录,就会出现这个,提示,输入yes后,就会记录到known_hosts文件,下次登录就不会询问了,删除该文件就会再次询问

    z


    2.authorized_keys

    已验证的机器的公钥存放的地方,这里面记录的机器不用密码就可以登录,要免密码登录某台机器,就是将我的公钥放到你的authorized_keys文件里。

    有个办公室是可以人脸(免密码)进入和钥匙(密码)进入的

    就像我想进这个有人脸识别的办公室,那个办公室里就要记录了我的脸,我才能免钥匙(免密码)进去。

    3.生成公钥和密钥

    ssh-keygen 命令生成公钥和私钥,不输入保存文件名就默认保存为id.rsa(私钥),id_rsa.pub(公钥)

    将公钥放到其他机器,有两种方法

    a.先scp id_rsa.pub user@ip:/dir ,复制到目标机器,再cat  id_rsa.pub >> ~/.ssh/authorized_keys ,将公钥的内容追加到authorized_keys文件里

    cat到authorized_keys文件 authorized_keys文件权限不对,要600才行


    b.使用ssh-copy-id命令,将公钥添加到远程主机

    ssh-copy-id命令

    使用ssh-copy-id命令比较方便

    3.批量设置ssh免登录

    还没完整实现全自动,ssh登录和ssh-copy-id命令需要交互,在脚本里还没实现。

    现在实现的是在每一台机器运行passh.sh脚本,可以将本机公钥复制到其他机器

    a.cp_ssh.sh ,用于将passh.sh脚本发送到其他slave机器


    slaves="master slave1 slave2"

     for i in ${slaves}

    do

     scp passh.sh root@${i}:/root/

     #ssh root@${i} "chmod a+x /root/passh.sh;/root/passh.sh"

    done 


    b.passh.sh脚本,运行后在本机生成公私钥,并用ssh-copy-id复制公钥到其他机器

    -N指定密码

    ssh-keygen -N ""

    #copy public key to remote host

    slaves="master slave1 slave2"

    for s in $slaves

    do

    #echo $s

    ssh-copy-id -f -i ~/.ssh/id_rsa.pub root@${s}

    done

    运行完cp_ssh.sh后,需要手动登录到其他slave运行passh.sh脚本

    脚本里的master,slave1,slave2是已经在hosts文件里设置好的了

    总的来说还没实现标题里说的功能,日后再补充

    相关文章

      网友评论

        本文标题:【Hadoop完全分布式】ssh批量设置免登陆脚本(1)

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