集群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-事物的隔离级别
Spring中定义了5中不同的事务隔离级别: 1. ISOLATION_DEFAULT(一般情况下使用这种配置既可) ; 这是一个PlatfromTransactionManager默认的隔离级别,使 ...
- 【HDU 1003】 Max Sum
题 题意 需要在o(n)时间内,求最大连续的子序列的和,及其起点和终点. 分析 一种方法是一边读,一边维护最小的前缀和 s[i] ,然后不断更新 ans = max(ans,s[j] - s[i]), ...
- 【UVALive 3905】BUPT 2015 newbie practice #2 div2-D-3905 - Meteor
http://acm.hust.edu.cn/vjudge/contest/view.action?cid=102419#problem/D The famous Korean internet co ...
- 【Matplotlib】 标注摄氏度符号
之前论文中作图遇到的,其实也很简单. 关键的代码如下: ax.set_xlabel('Temperature ($^\circ$C)') 完整的样例代码如下: # -*- coding: utf-8 ...
- SourceTree&Git部分名词解释
SourceTree&Git部分名词解释 克隆(clone):从远程仓库URL加载创建一个与远程仓库一样的本地仓库 提交(commit):将暂存文件上传到本地仓库(我们在Finder中对本地仓 ...
- CSS文字排版
一.font-size 我来试一试:为第一段中的“胆小如鼠”设置字号为:20px,字体颜色为:red. <!DOCTYPE HTML> <html> <head> ...
- maven-相关配置
Linux Ubuntu 安装Maven 我配置了 sudo gedit /etc/profile 配置了vi .bashrc 这个文档比较好(参考文档:http://www.linuxidc.co ...
- UVA 1398 Meteor
传送门 Solution: 记一颗流星在视野内的时间段为(L, R), 为了使所有(L, R)都取整数,首先将坐标放大. 放大倍数可取为 LCM(1, 2, ..., 10)= 2520 接着计算:从 ...
- JAVA敏捷开发环境搭建
前面介绍了创业型软件公司的工作模式,这里详细介绍下如何实施,第一步是先要搭建环境,有了环境才能开展工作. 整个软件项目分为四个环境 开发本地环境.开发环境.测试环境.IDC环境.和传统C++开发不一样 ...
- linux下使用 Tomcat 的几个坑
总结:用sudo su - 后的身份启动tomcat,可选用 bin下的 ./catalina.sh run命令以显示启动过程中可能的报错信息 1.普通用户是无法使用0~1023的熟知端口的,需要 ...