集群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 ...
随机推荐
- iOS开发icon&images Size
https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/MobileHIG/IconMatrix ...
- Windows python3.3下安装BeautifulSoup
首先在官网下载:http://www.crummy.com/software/BeautifulSoup/#Download BeautifulSoup在版本4以上都开始支持python3了,所以就下 ...
- 直接运行可执行文件linux终端一闪而过
运行elasticsearch的时候进入bin目录,ela 然后tab提示的内容中没有e..s..,很奇怪,然后我直接双击运行es,终端一闪而过,我就手动打开终端, ./elasticsearch 这 ...
- 关于“wining attitude”
同学转的诺基亚招聘启事上看到这样一则要求:“a real team player with wining attitude”.我的反应先是好奇,后是惊讶!好奇是好奇怎么个wining attitude ...
- Type-Length-Value编码
Within data communication protocols, optional information may be encoded as a type-length-value or T ...
- Mac OS下编写对拍程序
介绍 对拍是信息学竞赛中重要的技巧,它通过一个效率低下但正确率可以保证的程序,利用庞大的随机生成数据来验证我们的高级算法程序.对拍最大的优势在于可以通过人力所不能及的速度和数量达到验证的效果.下面我们 ...
- 学习笔记-Kuaihu(仿知乎日报)
本文目的:由于第一次学习较为完整的项目,故作记录以系统地整理APP开发知识 先看看整个项目结构: activity, fragment, 不用说了.可以看做MVC中的controller db, 存储 ...
- Oracle数据分页,并传出数据集
1.创建Package create or replace package forPaged is type my_csr is ref cursor; procedure getPaged(tabl ...
- mac 下终端访问文件出现“Permission Denied”解决方案
mac 下终端访问文件出现“Permission Denied”解决方案: 一个文件有3种权限,读.写.可执行,你这个文件没有可执行权限,需要加上可执行权限. 1. 终端下先 cd到该文件的目录下 2 ...
- property中的strong 、weak、copy 、assign 、retain 、unsafe_unretained 与autoreleasing区别和作用详解
iOS5中加入了新知识,就是ARC,其实我并不是很喜欢它,因为习惯了自己管理内存.但是学习还是很有必要的. 在iOS开发过程中,属性的定义往往与retain, assign, copy有关,我想大家都 ...