集群ssh服务和免密码登录的配置
ssh是比较可靠的应用层远程会话协议,也是通过客户端管理大量服务器的主流协议,默认情况下通过ssh登录服务器需要输入用户名和密码进行连接,但是集群的服务器之间一般都会配置免密码登录,这样对于运维和软件运行都非常方便,比如hadoop集群,如果没有ssh互信,那么每次启动时可能都要输入密码用来访问每台机器的DataNode,所以对于这种大数据集群来说都会配置ssh免密码登录,以下就具体的配置方法
首先应该安装ssh服务,一般CentOS和fedora等发行版系统默认安装好了ssh服务,如果没有安装那么可以使用yum install openssh-server如果是Ubuntu可以使用apt-get install openssh-server安装
安装好了一般我们用户目录下一般会有一个.ssh目录,如果没有也可以重新建立,比如/home/user下面,接下来就是配置user用户的免登陆,当然root用户也是可以的,首先执行命令生成公钥和私钥:
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
现在这样就生成了密钥,包括私钥和公钥,可以通过cat ~/.ssh/id_dsa.pub查看公钥的内容
注意:从openssh 7.0开始默认就关闭了ssh-dss认证方式,也就是dsa的密钥认证,原因是dsa有其对应的弱点,比如在centos8中上面方式生成的密钥在ssh会被禁用,通过ssh -v可以看出,这个时候就算配置免密之后仍然需要输入密码,虽然可以通过在/etc/ssh/ssh_config中配置PubkeyAcceptedKeyTypes=+ssh-dss,但是仍然不建议这么做,建议采用推荐的认证方式:rsa(默认),ecdsa,ed25519这些,所以统一按照下面的命令生成密钥:
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
下面所有的操作全部更新为在rsa类型的密钥上进行操作
然后我们把公钥追加到用来认证授权的key中去,可以执行:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
这样就实现了本机的免密码登录,现在可以通过执行ssh localhost确认来登录本地服务器了,第一次登录会询问是否继续输入yes回车即可,这个authorized_keys认证文件在/etc/ssh/sshd_config中的AuthorizedKeysFile进行配置,默认即可.
如果提示服务没有启动,可以通过执行
service sshd start
如果是CentOS7以上的版本或者新版的Fedora可以使用下面命令来启动
systemctl start sshd.service
可以用service sshd status查看ssh服务的运行状态
对于集群间免密的设置也很简单,只要知道原理就好做了,分别在每台机器上按照上面配置本地免密登录,然后将其余每台机器生成的~/.ssh/id_rsa.pub公钥内容追加到其中一台主机的authorized_keys中,然后将这台机器中包括每台机器公钥的authorized_keys文件发送到集群中所有的服务器;这样集群中每台服务器都拥有所有服务器的公钥,这样集群间任意两台机器都可以实现免密登录了
此时也可以在其他计算机通过ssh shell工具远程连接到集群进行各种操作
另外注意,如果使用ssh远程访问本地虚拟机,那么虚拟机网络设置直接设置成NAT即可,使用ifconfig查看ip地址进行连接
如果虚拟机安装在同一局域网中的其他计算机中,那么最简单的一种方法是设置虚拟机的网络为桥接,就相当于局域网中的一台独立的计算机一样,独自分配一个子网地址,然后我们就可以通过子网使用ssh客户端连接了
上面复制的方法比较麻烦而且容易出错,下面是一种通用的配置方式,假设现在集群是3台服务器hadoop1,hadoop2,hadoop3
首先保证主机名、hosts、防火墙正确设置
1、配置每个节点本身公钥和免密(其实第二行只在hadoop1上执行即可,其余节点最后会发送,没必要执行)
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
现在每台节点本身实现免密
2、将除hadoop1之外所有节点的公钥复制到hadoop1,这里是将hadoop2,hadoop3的公钥拷贝到hadoop1的authorized_keys,目的是实现hadoop2,hadoop3登录hadoop1实现免密,而反过来不行
ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop1 # 在hadoop2上执行
ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop1 # 在hadoop3上执行
3、实现最终集群所有节点互相免密
现在hadoop1保存了所有节点的公钥,那么这个时候应该发送hadoop1上的authorized_keys到其他节点
scp ~/.ssh/authorized_keys hadoop2:~/.ssh/
scp ~/.ssh/authorized_keys hadoop3:~/.ssh/
至此集群3台主机任意节点之间免密完成
免密的核心思想就是:如果A服务器authorized_keys有B服务器的公钥,那么B服务器可以免密登录A服务器...
集群ssh服务和免密码登录的配置的更多相关文章
- 使用ssh公钥实现免密码登录
使用ssh公钥实现免密码登录 ssh 无密码登录要使用公钥与私钥.linux下可以用用ssh-keygen生成公钥/私钥对,下面我以CentOS为例. 有机器A(10.207.160.34),B(10 ...
- Linux使用ssh公钥实现免密码登录Linux
ssh 无密码登录要使用公钥与私钥.linux下可以用用ssh-keygen生成公钥/私钥对,下面我以CentOS为例.有机器A(192.168.1.155),B(192.168.1.181).现想A ...
- Ubuntu使用ssh公钥实现免密码登录
ssh 无密码登录要使用公钥与私钥.linux下可以用用ssh-keygen生成公钥/私钥对,下面我以Ubuntu为例. 有机器A(10.0.2.1),B(10.0.2.100).现想A通过ssh免密 ...
- ssh免密码登录快速配置方法
环境需求: 两台Linux主机 A (192.168.3.101)和 B(192.168.3.102),如何使用主机 A 免密码登录 主机B ? 配置步骤: 首页登录主机 A ,在主机A上生成自己 ...
- Linux ssh下实现免密码登录
1.Linux 生成密钥 ssh-keygen -t rsa 进入“.ssh”会生成以下几个文件 id_rsa : 生成的私钥文件 id_rsa.pub : 生成的公钥文件 know_hosts : ...
- SSH使用密钥免密码登录
使用ssh远程连接服务器,有两种身份校验方式:账号密码和秘钥.使用秘钥的方式理论上更加安全,而且免去了输入密码的步骤,使用起来更方便(尤其对于sftp,scp等). 设置 SSH,打开密钥登录功能 编 ...
- PuTTY SSH 使用证书免密码登录
1.用PuTTY SSH 密钥生成工具puttygen.exe生成密钥.生成的密钥类型和位数按照默认的就OK,SSH-2 RSA,1024位生成密钥时你需要在空白区域移动鼠标,以便产生随机数据点击保存 ...
- 糗事之 -- 用ssh公钥实现免密码登录
前言:工作原因,每天都会登录好多次服务器,每次都是ssh root@192.168..... 然后输入密码,来来回回输几次真是很烦啊. 问题:怎么可以在每次ssh连接服务器时不用输入密码,直接登录? ...
- linux ssh 免密码登录的配置过程
# ssh-keygen -t rsa -C "自定义描述" -f ~/.ssh/自定义生成的rsa文件 # cd ./.ssh # touch config # 粘贴 Host ...
随机推荐
- Spring-涉及到的设计模式汇总
1. 简单工厂 又叫做静态工厂方法(StaticFactory Method)模式,但不属于23种GOF设计模式之一. 简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类. ...
- Java基础-数据类型int,short,char,long,float,double,boolean,byte
Java语言是静态类型的(statical typed),也就是说所有变量和表达式的类型再编译时就已经完全确定.由于是statical typed,导致Java语言也是强类型(Strong typed ...
- 图解Android - Android GUI 系统 (2) - 窗口管理 (View, Canvas, Window Manager)
Android 的窗口管理系统 (View, Canvas, WindowManager) 在图解Android - Zygote 和 System Server 启动分析一 文里,我们已经知道And ...
- 【前端】Sublime text3 插件HTML/CSS/JS prettify 格式化代码
1.首先安装插件 菜单的preference->packages control,然后输入install .. 回车,再输入HTML/CSS/JS prettify 再回车,重启后就可以了. 2 ...
- 4.Android下拉列表框spinner学习
下拉列表框被广泛使用,诸如淘宝.京东等手机端经常可以看到这个部件身影,今天就来学习下它. 首先布局文件增加代码:如图 接下来在values下增加arrays.xml 如图 ...
- MyEclipse10中导入的jquery文件报错(出现红叉叉,提示语法错误)
为了做一个页面特效,导入了一个jQuery文件,怎想,myeclipse竟然报错说是语法错误,但是这个js文件我是从官网上下载的,不应该出错才对,百度谷歌之后终于找到了解决办法: 选中报错的js文件, ...
- Eclipse启动Tomcat错误:Several ports (8005,8009) required by Tomcat v6.0 Server at localhost are already
解决办法: 1.netstat -aon|findstr 8005 可查看指定端口号使用情况 2.tasklist |findstr 10452 找出占用指定进程Id的程序 3.taskkill /p ...
- POJ2586Y2K Accounting Bug(贪心 + 不好想)
Y2K Accounting Bug Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 12251 Accepted: 62 ...
- log4j使用教程详解(怎么使用log4j2)
1. 去官方下载log4j 2,导入jar包,基本上你只需要导入下面两个jar包就可以了(xx是乱七八糟的版本号): log4j-core-xx.jar log4j-api-xx.jar 2. 导入到 ...
- Virtualbox虚拟机安装Ubuntu图文版
这篇文章给大家介绍一下如何在Windows系统下的Virtual Box虚拟机软件中安装Ubuntu系统. 适用环境:Windows系统作为物理机,在此平台上搭建一个Virtual Box虚拟平台,在 ...