配置ssh免密码登录——集群学习日记
度过了难熬的考试月时期之后,最近和小伙伴一起参加的的比赛进入了紧张的准备时期。在进行工作的时候,发现有很多基础的知识点,自己不是很清楚以及了解,所以在想,要不就边学习的时候边写下学习日记,以供自己后来不懂的时候查看,同时以希望自己的一些所得能帮助到其他人。共勉之~
前言
Secure Shell(缩写为SSH),是一项创建在应用层和传输层基础上的安全协议,为计算机上的Shell(壳层)提供安全的传输和使用环境。传统的网络服务程序,如rsh、FTP、POP和Telnet其本质上都是不安全的;因为它们在网络上用明文传送数据、用户帐号和用户口令,很容易受到中间人(man-in-the-middle)攻击方式的攻击。就是存在另一个人或者一台机器冒充真正的服务器接收用户传给服务器的数据,然后再冒充用户把数据传给真正的服务器。而SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用SSH协议可以有效防止远程管理过程中的信息泄露问题。通过SSH可以对所有传输的数据进行加密,也能够防止DNS欺骗和IP欺骗。SSH之另一项优点为其传输的数据可以是经过压缩的,所以可以加快传输的速度。SSH有很多功能,它既可以代替Telnet,又可以为FTP、POP、甚至为PPP提供一个安全的“通道”。
引用于维基百科Secure Shell
SSH的必要性
Hadoop的Master和Slave节点之间的通信,以及Spark的Master和Worker节点之间的通信,都是通过SSH来完成的。我们不希望他们之间的每次通信都输入一次密码,所以我们需要他们之间进行SSH免密码登录。
前期准备
我在实验室的三台主机都是Centos 7,自带了ssh。如果没有安装的ssh的可以使用:
yum install ssh
来安装。
使用ssh-keygen生成私钥和公钥
命令行:
ssh-keygen
无论弹出什么信息都直接enter回车键跳过。两下回车键之后就生成了如下文件:

其中id_rsa是私钥,id_rsa.pub是公钥。
使用>>把公钥内容追加到anthorized_keys文件中。
命令行:
cat ~/.ssh/id_rsa.pub >> ~/.ssh./authorized_keys
其中authorized_keys用于保存所有允许以当前用户身份登录到ssh客户端用户的公钥内容。
ps:Centos 7上是没有
authorized_keys这个文件的,所以追加之后会自动生成这个文件。
测试是否可以免密码登录
命令行:
ssh localhost
出现以下界面,说明可以免密码登录了。

此处localhost为本机
按照上面,同时在其他两台机子上执行同样的命令
按照上面,同时在其他两台机子上执行同样的命令
按照上面,同时在其他两台机子上执行同样的命令
重要的事情说三遍!
把公钥拷贝到其他主机上面的一种可行的方法
我们把三台电脑分别取名为Master、Slave1、Slave2。在Slave1上执行
scp id_rsa.pub root@Master_ip:/root/.ssh/id_rsa.pub.slave1
其中,Master_ip为Master的ip,后面的slave1只是为了区别其他文件而起的。这个可以任意。
执行之后需要输入Master的root的密码之后,就把文件拷贝到Master下了。
同样Slave2上执行
scp id_rsa.pub root@Master_ip:/root/.ssh/id_rsa.pub.slave2
执行之后可以查看Master的.ssh文件夹下存在刚刚的两个文件了

紧接着的是,把上述两个文件slave1和slave2追加到authorized_keys中。
命令行:
cat id_rsa.pub.slave1 >> authorized_keys
cat id_rsa.pub.slave2 >> authorized_keys
至此,我们都把每台机子的公钥都拷贝到Master下面的authorized_keys中了。
把authorized_keys文件也拷贝到其他的Slave电脑中
命令行:(此时在Master中的.ssh文件夹下)
scp authorized_keys root@slave1_ip:/root/.ssh/authoried_keys
scp authorized_keys root@slave2_ip:/root/.ssh/authoried_keys
其中slave1_ip和slave2_ip,为每一台slave的ip地址,输入命令之后输入每台的Slave的密码便可以。
结言:
到此,每台机子上面的authoried_keys都含有集群中每台机子的公钥,都可以直接使用
ssh ip的方式直接登录了。
参见 王家林/王雁军/王家虎的《Spark 核心源码分析与开发实战》
文章出自kwongtai'blog,转载请标明出处!
配置ssh免密码登录——集群学习日记的更多相关文章
- CentOS 6.5配置SSH免密码登录
centos 系统对权限的设置非常微妙,如果权限设置大了则ssh 拒绝,如果权限小了,则ssh 更是被拒绝(我曾经配置好久没有打通,就是因为权限过大的原因) 参考链接:http://www.linux ...
- 配置Ssh免密码登录
配置Ssh免密码登录 一个master节点,两个client节点(client1.client2) 1.所有节点创建hadoop用户,并设置密码 以root账号登录: useradd hadoop p ...
- Xshell配置ssh免密码登录-密钥公钥(Public key)与私钥(Private Key)登录【已成功实例】
本文转自https://blog.csdn.net/qjc_501165091/article/details/51278696 ssh登录提供两种认证方式:口令(密码)认证方式和密钥认证方式.其中口 ...
- Linux配置SSH免密码登录
CentOS配置SSH免密码登录为例说明:SSH远程登录的安全外壳协议有两种身份认证机制: - 用户名+密码 -密钥登录 环境准备 host1:192.168.0.10host2:192.168.0. ...
- 解决:centos配置ssh免密码登录后仍要输入密码
转自https://www.jb51.net/article/121180.htm 第一步:在本机中创建秘钥 1.执行命令:ssh-keygen -t rsa 2.之后一路回车就行啦:会在-(home ...
- 配置ssh免密码登录设置后还是提示需要输入密码
工作之余搭建了一个集群测试,配置了ssh免密码登录以后 ,所有的ssh-copy-id 密钥也都分发了 ,各项配置也没有问题,但是使用ssh进行免密登录时,没有报错,但是要输入被ssh主机的登录密码 ...
- 如何配置ssh免密码登录
[TOC] 如果你在管理一堆unix机器,每次登录都要输入密码是挺烦的事情,一方面为了安全我们一般不会将所有机器的密码都设置成一样,另一方面就算一样每次都输入一遍也很麻烦. 这种情况下我们一般是用ss ...
- centos配置ssh免密码登录
master.slave1两台机器实现ssh免密码登录,user:hadoop,passwd:123456 1.设置master: vi /etc/sysconfig/network hostname ...
- linux 配置ssh免密码登录
1.确保主机名唯一 主机名修改方法: a.修改/etc/sysconfig/network,HOSTNAME=想要设置的主机名称 b.修改/etc/hosts,127.0.0.1 localhos ...
随机推荐
- Java之FilenameFilter接口
FilenameFilter接口:是用于过滤文件的 要实现的是accept方法 实例代码: 1,匿名类实现FilenameFilter-–过滤指定类型文件 package File类过滤器; impo ...
- 使用java实现发送邮件的功能
首先要在maven添加javamail支持 <dependency> <groupId>javax.activation</groupId> <artifac ...
- html5中cookie介绍,封装以及添加,获取,删除
cookie是储存在用户本地终端上的数据. 在我们登陆网站时有记录密码,也有时间限制比如说7天,5天等等这都是我们利用cookie来写的, 这就是利用了cookie的会话周期,但cookie同时又是不 ...
- 限制容器对CPU的使用 - 每天5分钟玩转 Docker 容器技术(28)
上节学习了如何限制容器对内存的使用,本节我们来看CPU. 默认设置下,所有容器可以平等地使用 host CPU 资源并且没有限制. Docker 可以通过 -c 或 --cpu-shares 设置容器 ...
- Realm的简单使用
Realm个人理解: 它主要是一套移动端数据库框架,将对数据库表的操作转换为对对象的操作,如果是学过Java ORM框架的同学使用Realm起来应该上手比较快一点.而且据我所知Realm不仅支持Obj ...
- Java程序设计环境概述
本文主要Java程序设计环境的要点,以及相关注意事项. 一.安装Java开发包 Oracle公司为Linux.Mac OS X.Solaris和Windows提供了Java开发工具包(JDK)的最新. ...
- Gist - ES6 Iterator
Introduction Iterator is one of the most common design modes in daily development. Let's explore the ...
- JSON总结-持续更新补充
基本的json格式 { "name": "jobs", "boolean": true, "age": null, &q ...
- 不让bat文件运行命令结束后cmd窗口自动关闭
方法1假设你的bat名字叫aaa.bat你可以新开一个bat,内容是start aaa.bat然后这个新的bat是不会自动关闭的 方法2要执行bat后不退出,可以在bat里的最后添加pause命令,暂 ...
- js中的数字格式变成货币类型的格式
<!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8& ...