阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

配置SSH免密码登录

145次阅读
没有评论

共计 2407 个字符,预计需要花费 7 分钟才能阅读完成。

前言

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 回车键跳过。两下回车键之后就生成了如下文件:

配置 SSH 免密码登录

其中 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

出现以下界面,说明可以免密码登录了。

配置 SSH 免密码登录

此处 localhost 为本机

按照上面,同时在其他两台机子上执行同样的命令

按照上面,同时在其他两台机子上执行同样的命令

按照上面,同时在其他两台机子上执行同样的命令

重要的事情说三遍!

把公钥拷贝到其他主机上面的一种可行的方法

我们把三台电脑分别取名为 MasterSlave1Slave2。在Slave1 上执行

scp id_rsa.pub root@Master_ip:/root/.ssh/id_rsa.pub.slave1

其中,Master_ipMasterip,后面的 slave1 只是为了区别其他文件而起的。这个可以任意。

执行之后需要输入 Masterroot的密码之后,就把文件拷贝到 Master 下了。

同样 Slave2 上执行

scp id_rsa.pub root@Master_ip:/root/.ssh/id_rsa.pub.slave2

执行之后可以查看 Master.ssh文件夹下存在刚刚的两个文件了

配置 SSH 免密码登录

紧接着的是,把上述两个文件 slave1slave2追加到 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_ipslave2_ip, 为每一台 slaveip地址,输入命令之后输入每台的 Slave 的密码便可以。

结言:

到此,每台机子上面的 authoried_keys 都含有集群中每台机子的公钥,都可以直接使用
ssh ip 的方式直接登录了。

下面关于 SSH 相关的文章您也可能喜欢,不妨参考下:

集群环境 SSH 免密码登录设置  http://www.linuxidc.com/Linux/2017-03/141296.htm

Linux 基础教程:配置 SSH 免密码登陆 http://www.linuxidc.com/Linux/2017-07/145847.htm

远程 SSH 连接服务与基本排错  http://www.linuxidc.com/Linux/2017-05/143738.htm

使用 SSH 公钥密钥自动登陆 Linux 服务器 http://www.linuxidc.com/Linux/2017-02/140642.htm

开启 SSH 服务让 Android 手机远程访问 Ubuntu 14.04  http://www.linuxidc.com/Linux/2014-09/106809.htm

SSH 非交互式密码授权远程执行脚本  http://www.linuxidc.com/Linux/2017-04/143180.htm

SSH 通过密钥登陆 http://www.linuxidc.com/Linux/2017-06/144997.htm

Linux 上实现 SSH 免密码登陆远程服务器  http://www.linuxidc.com/Linux/2017-05/144165.htm

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-08/146213.htm

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-21发表,共计2407字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中