ssh免密登录工作原理
server A免登录到server B: 
1.在A上生成公钥私钥。 
2.将公钥拷贝给server B,要重命名成authorized_keys(从英文名就知道含义了) 
3.Server A向Server B发送一个连接请求。 
4.Server B得到Server A的信息后,在authorized_keys中查找,如果有相应的用户名和IP,则随机生成一个字符串,并用Server A的公钥加密,发送给Server A。 
5.Server A得到Server B发来的消息后,使用私钥进行解密,然后将解密后的字符串发送给Server B。Server B进行和生成的对比,如果一致,则允许免登录。 
总之:A要免密码登录到B,B首先要拥有A的公钥,然后B要做一次加密验证。对于非对称加密,公钥加密的密文不能公钥解开,只能私钥解开。
注意:上述只能实现单向免密登录
 
接下来配置相互免密登录:
其关键点在,收集所有主机的公钥将其共享到master的authorized_keys文件中,然后再用scp复制到各个主机的.ssh文件夹下
 
 

0、给所有没安装ssh的主机安装ssh

   sudo apt-get install ssh
sudo apt-get install rsync

1、修改master的配置文件  gedit /etc/hosts
给每个需要互联的机器设置IP地址 和 名称(每台机中自行修改)
如127.0.0.1 localhost
192.168.137.129 master
192.168.137.130 slave1
192.168.137.131 slave2
2、给每个主机生成公钥和秘钥
  ssh-keygen –t rsa   -->直接回车生成的密钥对:id_rsa和id_rsa.pub,
  默认存储在"/home/hadoop/.ssh"目录下。

  先设置第六步

3、master 先将自身的公钥加到key中去,之后将所有slave机上的公钥发给master机
  master中:	cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
  slave1中:	scp ~/.ssh/id_rsa.pub root@master:~/id_rsa.pub 
  先发slave1,执行第4步后,再发slave2

4、把slave追加到授权的key里面去。

   master 中: cat ~/id_rsa.pub >> ~/.ssh/authorized_keys

  rm ~/id_rsa.pub  %删掉已经合并的公钥。

  有别的机子再执行第三步

 

5、修改master中key的权限

     chmod 600 ~/.ssh/authorized_keys

 

6、修改每台机子的配置文件 gedit /etc/ssh/sshd_config

将图片中提示的那三行上面的permitRootLogin 改成 yes 这样就可以连接远程的root用户(在需要连的那台机子上 改)

   service sshd restart -->重启ssh服务

7、将key传到每个slave机中

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

  (scp ~/.ssh/authorized_keys  远程用户名@主机名或IP:      %scp用法)

  重复直到所有机子的key都一样

  给每个机子的.ssh 文件夹权限 :chmod 700 ~/.ssh

8、测试连接

  ssh slave1 -->连接用户

   exit   -->退出连接用户

Ubuntu ssh免密登录的更多相关文章

  1. Ubuntu如何配置SSH免密登录

    前言 在搭建hadoop集群时,需要主机和副机之间实现SSH免密登录 一.环境准备 1.ubuntu两台 二.安装SSH 1.首先检测一下本机有没有安装SSH服务,如果没有任何打印说明未安装 sudo ...

  2. linux(十)配置ssh免密登录实现

    知道ssh的朋友应该知道它是用来干什么的,如果你不知道什么是ssh远程登录的话,可以去看一下我的上一篇博客,关于linux的网络基础的知识.备注:ssh是用于远端登入.执行ssh指令开启终端机阶段作业 ...

  3. Linux SSH免密登录

    SSH无密码登录要使用公钥与私钥.Linux可以用ssh-keygen生成公钥/私钥对,下面以Ubuntu为例说明配置过程. 有两个节点:node01(172.17.0.14)和node02(172. ...

  4. Centos7配置ssh免密登录群发

    ssh免密登录是客户端发送自己的公钥到服务器.用公钥进行解密,自己生成的私钥进行加密. 首先在客户端查看sshd服务是否启动 [zhiwei@zhiwei1 ~]$ ps -Af|grep sshd; ...

  5. 深度解读SSH免密登录

    深度解读SSH免密登录 我们都知道SSH是LINUX下很常用的命令,用来远程登陆其他的LINUX系统.如果只有一台,那也只是一个密码 ,也到还好.但如果是一个集群,每次都输入密码登录,难免会拉低效率. ...

  6. 【Linux】ssh免密登录

    一.ssh免密配置 ssh 无密码登录要使用公钥与私钥.linux下可以用用ssh-keygen生成公钥/私钥对,下面我以CentOS为例.有机器A(192.168.1.155),B(192.168. ...

  7. linux 远程ssh免密登录

    写在前面 先说说需求: 我们平时开发.运维操作linux过程中经常需要实现将远程文件拷贝到本地或者本地文件拷贝到远程:执行远程命令等操作:这个时候建立ssh免密登录应该是一个比较好的选择: 原理 在l ...

  8. linux服务器ssh免密登录

    环境:两台服务器,Park01.Park02,配置ssh免密登录 在Park01执行:ssh-keygen 然后一直回车 生成节点的公钥和私钥,生成的文件会自动放在/root/.ssh目录下   然后 ...

  9. (11)ssh免密登录配置

    ***在Linux命令行中登录到另一台虚拟机(需要用到ssh协议) Linux中默认有ssh的服务器端和客户端,客户端的名字就叫ssh 前提是当前使用的用户名在待连接的虚拟机中存在 格式:  ssh ...

随机推荐

  1. php解析带有命名空间的xml

    xml如果带有命名空间我们将如何解析,例如: <ns1:CreateBillResponse xmlns:ns1="http://neusoft.com" xmlns:xsd ...

  2. Centos内核版本升级

  3. coreos 之flannel

    提要: coreos 中 flannel 工具是coreos 网络划分工具.通过flannel 划分子网并向etcd 注册网络信息.可以做到宿主机集群中容器间网络通信. 1. 启动etcd2 服务: ...

  4. 玩转 eclipse:[1]如何快速找错-debug

    本文摘自百度经验 原文地址如下: 玩转 eclipse:[1]如何快速找错-debu eclipse是软件开发人员必备的IDE之一. 由于语言障碍或者是经验不足,许多刚刚新手并不清楚如何高效使用ecl ...

  5. cesium学习--初识

    一.Cesium 官方介绍:CesiumJS是一个开源的JavaScript库,用于世界级的3D地球仪和地图.任务是为静态和时间动态的内容创建领先的3D地球和地图,具有最好的性能.精度.视觉质量.平台 ...

  6. Oracle exp使用正則表達式导出部分表

    假设数据库中有许多张表,而我们又仅仅想导出须要的那几张能够使用例如以下命令 --仅仅导出test1.test2表 exp myname/mypassword@orcl file = d:\my.dmp ...

  7. C#使用for循环移除HTML标记

    public static string StripTagsCharArray(string source) { char[] array = new char[source.Length]; int ...

  8. Python爬虫-- BeautifulSoup库

    BeautifulSoup库 beautifulsoup就是一个非常强大的工具,爬虫利器.一个灵活又方便的网页解析库,处理高效,支持多种解析器.利用它就不用编写正则表达式也能方便的实现网页信息的抓取 ...

  9. 2017-2018-1 20179209《Linux内核原理与分析》第四周作业

    本周学习内容为<跟踪分析MenuOS简单linux系统的启动过程>和教材中的进程调度及内核数据结构. 一.跟踪分析Linux内核的启动过程 这个实验我是在实验楼环境中完成的,最初想在自己的 ...

  10. 关于调用notifyDataSetChanged刷新PullToRefreshListView列表无反应解决办法

    文章转载自:关于调用notifyDataSetChanged刷新PullToRefreshListView列表无反应解决办法 | TeachCourse