Linux 下实现SSH免密码登录

    最近在学习hadoop,自然要自己搭建一个hadoop集群,当然,hadoop集群也可以搞个为分布式集群,但是,咱有条件,搞个Vmware,启三个linux虚拟机,当然也可以装一个虚拟机 然后克隆2个,这个自己恶补一番,这里不详述。

     完全分布式集群的搭建,涉及到集群中各个机器之间的互访,因为Hadoop集群中的各个机器间会相互地通过SSH访问,每次访问都输入密码是不现实的,所以要配置各个机器间的SSH是无密码登录的。

      1. 准备三台机器,设置三台机器为静态ip地址

       master:192.168.2.10, slave1:192.168.2.11, slave2:192.168.2.12

       可以参考:https://www.linuxidc.com/Linux/2017-06/144401.htm?hmsr=toutiao.io

      2. SSH免密码登陆思想

         因为三个节点要相互访问,所以,三个节点都是客户端,也都是服务器端,我们分别在三个节点上创建一对密钥文件,密钥文件包括公钥文件(~/.ssh/id_rsa.pub)和私钥文件 (~/.ssh/id_rsa)。

       客户端在使用ssh登录到其他节点上的时候,ssh会发送私钥去和其他节点上的公钥去匹配,如果匹配成功,那么就会自动登录,而不需要输入密码,这就实现了无密码登录。  所以,客户端要实现免密码登录到目标节点上的时候,就需要把公钥写入目标节点上的~/.ssh/authorized_keys中。 

        Linux下 生成秘钥的命令为:ssh-keygen

        ssh-keygen的命令手册,通过”man ssh-keygen“命令

       

通过命令”ssh-keygen -t rsa“

生成之后会在用户的根目录也就是root目录下生成一个 “.ssh”的文件夹

        

进入“.ssh”会生成以下几个文件

authorized_keys:存放远程免密登录的公钥,主要通过这个文件记录多台机器的公钥

id_rsa : 生成的私钥文件

id_rsa.pub : 生成的公钥文件

know_hosts : 已知的主机公钥清单

如果希望ssh公钥生效需满足至少下面两个条件:

 1) .ssh目录的权限必须是700 

 2) .ssh/authorized_keys文件权限必须是600

3.SSH免密码登陆实现方式

  将公钥全部发送的master上,由master将各个客户端节点的公钥整合到~/.ssh/authorize_keys中,然后,用scp命令将 ~/.ssh/autorized_keys复制到其他两个节点中

4)  查看是否已安装ssh

   ssh –version/ssh -V

5)  客户端创建秘钥

   ssh-keygen -t rsa   #用rsa算法产生秘钥

   cd .ssh   #进入.ssh目录中

   ls  #查看此目录下的文件:id_rsa  id_rsa.pub

   依次在其他的客户端上如法炮制

6)  将master的公钥写入master中

   cp id_rsa.pub authorized_keys

   修改权限 #root用户无需修改

   ssh 主机名 #登录验证

7)  将slave的公钥写入master中

   slave1:scp id_rsa.pub root@192.168.2.10:/home/hadoop/id_rsa_01.pub

   slave2:scpid_rsa.pub root@192.168.2.10:/home/hadoop/id_rsa_02.pub

   master: cat id_rsa_01.pub >>~/.ssh/authorized_keys #写入公钥

   master: cat id_rsa_02.pub >> ~/.ssh/authorized_keys #写入公钥

8)  将master公钥复制到slave中

slave1: scp authorized_keys root@192.168.2.11:~/.ssh/authorized_keys

slave2: scp authorized_keys root@192.168.2.12:~/.ssh /authorized_keys

9)  ip与主机名绑定配置同步到其他两台slave机器

   scp /etc/hosts root@192.168.2.11:/etc/hosts

   scp /etc/hosts root@192.168.2.12:/etc/hosts

SSH免密码登录原理:

这种方式你需要在客户端服务器上为自己创建一对密匙,并把公匙放在需要登录的服务器上。
当你要连接到服务器上时,客户端就会向服务器请求使用密匙进行安全验证。
服务器收到请求之后,会在该服务器上你所请求登录的用户的家目录下寻找你的公匙,
然后与你发送过来的公匙进行比较。
如果两个密匙一致,服务器就用该公匙加密“质询”并把它发送给客户端。
客户端收到“质询”之后用自己的私匙解密再把它发送给服务器。

可参考:https://blog.csdn.net/daidaineteasy/article/details/50948034

              https://www.jb51.net/article/94599.htm

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值