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