SSH无password登陆配置
摘录一
在192.168.42.142机器上
1)执行:ssh-keygen -t rsa
2)然后拍两下回车(均选择默认)
3)执行:
ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.42.163
或普通用户:
ssh-copy-id NAME@IP
4)再输入163机器上的rootpassword
此时。再ssh 到163机器,则不须要password了。
相互之间scp,也不须要password
摘录二
配置 ssh 实现 MPI 节点间用户的无password訪问,因为 MPI 并行程序须要在各节点间进行信息传递,所以必须实现全部节点两两之间能无password訪问。
节点间的无password訪问是通过配置ssh 公钥认证来实现的。比如,对新用户 user 配置 ssh 公钥认证,先在 c1 上做下面操作。
(1)生成了私钥 id_dsa 和公钥 id_dsa.pub,详细操作方法例如以下。
ssh-keygen -t rsa
系统显示一些信息,遇到系统询问直接回车就可以。
(2)将该密钥用作认证,进行訪问授权。按例如以下命令在 c1 运行。
cp ~/.ssh/id_dsa.pub ~/.ssh/authorized_keys
因为我们使用的是 root 用户,所以~代表/root,
(3)将~/.ssh 文件夹下的文件拷贝到全部节点。
scp -r ~/.ssh/* c2:/root/.ssh
(4)检查能否够直接(不须要password)登录其它节点。
ssh c2
如能两两之间不须要password登录其它节点,则表明配置成功。
!!
!!
!!
!
!!
!。!!。!!!
!
!
!
!!!!。!
!。。。。!
。。。。
(http://www.cnblogs.com/xia520pi/archive/2012/05/16/2503949.html)
2、SSH无password验证配置
Hadoop执行过程中须要管理远端Hadoop守护进程,在Hadoop启动以后,NameNode是通过SSH(Secure Shell)来启动和停止各个DataNode上的各种守护进程的。这就必须在节点之间执行指令的时候是不须要输入password的形式。故我们须要配置SSH运用无password公钥认证的形式,这样NameNode使用SSH无password登录并启动DataName进程。相同原理,DataNode上也能使用SSH无password登录到NameNode。
2.1 安装和启动SSH协议
在"Hadoop集群(第1期)"安装CentOS6.0时。我们选择了一些基本安装包。所以我们须要两个服务:ssh和rsync已经安装了。能够通过以下命令查看结果显演示样例如以下:
rpm –qa | grep openssh
rpm –qa | grep rsync

如果没有安装ssh和rsync,能够通过以下命令进行安装。
yum install ssh 安装SSH协议
yum install rsync (rsync是一个远程数据同步工具。可通过LAN/WAN高速同步多台主机间的文件)
service sshd restart 启动服务
确保全部的server都安装,上面命令运行完成。各台机器之间能够通过password验证相互登。
2.2 配置Master无password登录全部Salve
1)SSH无password原理
Master(NameNode | JobTracker)作为client,要实现无password公钥认证,连接到serverSalve(DataNode | Tasktracker)上时,须要在Master上生成一个密钥对,包含一个公钥和一个私钥,而后将公钥拷贝到全部的Slave上。
当Master通过SSH连接Salve时,Salve就会生成一个随机数并用Master的公钥对随机数进行加密,并发送给Master。
Master收到加密数之后再用私钥解密,并将解密数回传给Slave,Slave确认解密数无误之后就同意Master进行连接了。这就是一个公钥认证过程,其间不须要用户手工输入password。
重要过程是将clientMaster拷贝到Slave上。
2)Master机器上生成password对
在Master节点上运行下面命令:
ssh-keygen –t rsa –P ''
这条命是生成其无password密钥对,询问其保存路径时直接回车採用默认路径。生成的密钥对:id_rsa和id_rsa.pub,默认存储在"/home/hadoop/.ssh"文件夹下。

查看"/home/hadoop/"下是否有".ssh"目录,且".ssh"文件下是否有两个刚生产的无password密钥对。

接着在Master节点上做例如以下配置,把id_rsa.pub追加到授权的key里面去。
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

在验证前,须要做两件事儿。第一件事儿是改动文件"authorized_keys"权限(权限的设置很重要。由于不安全的设置安全设置。会让你不能使用RSA功能),还有一件事儿是用root用户设置"/etc/ssh/sshd_config"的内容。
使其无password登录有效。
1)改动文件"authorized_keys"
chmod 600 ~/.ssh/authorized_keys

备注:假设不进行设置。在验证时。扔提示你输入password。在这里花费了将近半天时间来查找原因。
在网上查到了几篇不错的文章。把作为"Hadoop集群_第5期副刊_JDK和SSH无password配置"来帮助额外学习之用。
2)设置SSH配置
用root用户登录server改动SSH配置文件"/etc/ssh/sshd_config"的下列内容。

RSAAuthentication yes # 启用 RSA 认证
PubkeyAuthentication yes # 启用公钥私钥配对认证方式
AuthorizedKeysFile .ssh/authorized_keys # 公钥文件路径(和上面生成的文件同)
设置完之后记得重新启动SSH服务,才干使刚才设置有效。
service sshd restart
退出root登录,使用hadoop普通用户验证是否成功。
ssh localhost

从上图中得知无password登录本级已经设置完成,接下来的事儿是把公钥复制全部的Slave机器上。使用以下的命令格式进行复制公钥:
scp ~/.ssh/id_rsa.pub 远程username@远程serverIP:~/
比如:
scp ~/.ssh/id_rsa.pub hadoop@192.168.1.3:~/
上面的命令是复制文件"id_rsa.pub"到serverIP为"192.168.1.3"的用户为"hadoop"的"/home/hadoop/"以下。
以下就针对IP为"192.168.1.3"的Slave1.Hadoop的节点进行配置。
1)把Master.Hadoop上的公钥拷贝到Slave1.Hadoop上

从上图中我们得知。已经把文件"id_rsa.pub"传过去了。由于并没有建立起无password连接,所以在连接时,仍然要提示输入输入Slave1.Hadoopserver用户hadoop的password。为了确保确实已经把文件传过去了。用SecureCRT登录Slave1.Hadoop:192.168.1.3server,查看"/home/hadoop/"下是否存在这个文件。

从上面得知我们已经成功把公钥复制过去了。
2)在"/home/hadoop/"下创建".ssh"目录
这一步并非必须的。假设在Slave1.Hadoop的"/home/hadoop"已经存在就不须要创建了,由于我们之前并没有对Slave机器做过无password登录配置。所以该文件是不存在的。用以下命令进行创建。(备注:用hadoop登录系统,假设不涉及系统文件改动。普通情况下都是用我们之前建立的普通用户hadoop进行运行命令。)
mkdir ~/.ssh
然后是改动目录".ssh"的用户权限,把他的权限改动为"700",用以下命令运行:
chmod 700 ~/.ssh
备注:假设不进行,即使你依照前面的操作设置了"authorized_keys"权限。并配置了"/etc/ssh/sshd_config",还重新启动了sshd服务,在Master能用"ssh localhost"进行无password登录,可是对Slave1.Hadoop进行登录仍然须要输入password,就是由于".ssh"目录的权限设置不正确。这个目录".ssh"在配置SSH无password登录时系统自己主动生成时,权限自己主动为"700",假设是自己手动创建,它的组权限和其它权限都有,这样就会导致RSA无password远程登录失败。


对照上面两张图。发现目录".ssh"权限已经变了。
3)追加到授权文件"authorized_keys"
到眼下为止Master.Hadoop的公钥也有了,目录".ssh"也有了,且权限也改动了。
这一步就是把Master.Hadoop的公钥追加到Slave1.Hadoop的授权文件"authorized_keys"中去。
使用以下命令进行追加并改动"authorized_keys"文件权限:
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

4)用root用户改动"/etc/ssh/sshd_config"
详细步骤參考前面Master.Hadoop的"设置SSH配置",详细分为两步:第1是改动配置文件。第2是重新启动SSH服务。
5)用Master.Hadoop使用SSH无password登录Slave1.Hadoop
当前面的步骤设置完成,就能够使用以下命令格式进行SSH无password登录了。
ssh 远程serverIP

从上图我们主要3个地方,第1个就是SSH无password登录命令,第2、3个就是登录前后"@"后面的机器名变了,由"Master"变为了"Slave1",这就说明我们已经成功实现了SSH无password登录了。
最后记得把"/home/hadoop/"文件夹下的"id_rsa.pub"文件删除掉。
rm –r ~/id_rsa.pub

到此为止,我们经过前5步已经实现了从"Master.Hadoop"到"Slave1.Hadoop"SSH无password登录。以下就是反复上面的步骤把剩余的两台(Slave2.Hadoop和Slave3.Hadoop)Slaveserver进行配置。
这样,我们就完毕了"配置Master无password登录全部的Slaveserver"。
2.3 配置全部Slave无password登录Master
和Master无password登录全部Slave原理一样,就是把Slave的公钥追加到Master的".ssh"目录下的"authorized_keys"中,记得是追加(>>)。
为了说明情况,我们如今就以"Slave1.Hadoop"无password登录"Master.Hadoop"为例,进行一遍操作。也算是巩固一下前面所学知识。剩余的"Slave2.Hadoop"和"Slave3.Hadoop"就依照这个演示样例进行就能够了。
首先创建"Slave1.Hadoop"自己的公钥和私钥,并把自己的公钥追加到"authorized_keys"文件里。用到的命令例如以下:
ssh-keygen –t rsa –P ''
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

接着是用命令"scp"复制"Slave1.Hadoop"的公钥"id_rsa.pub"到"Master.Hadoop"的"/home/hadoop/"文件夹下。并追加到"Master.Hadoop"的"authorized_keys"中。
1)在"Slave1.Hadoop"server的操作
用到的命令例如以下:
scp ~/.ssh/id_rsa.pub hadoop@192.168.1.2:~/

2)在"Master.Hadoop"server的操作
用到的命令例如以下:
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys

然后删除掉刚才复制过来的"id_rsa.pub"文件。

最后是測试从"Slave1.Hadoop"到"Master.Hadoop"无password登录。

从上面结果中能够看到已经成功实现了,再试下从"Master.Hadoop"到"Slave1.Hadoop"无password登录。

至此"Master.Hadoop"与"Slave1.Hadoop"之间能够互相无password登录了,剩下的就是依照上面的步骤把剩余的"Slave2.Hadoop"和"Slave3.Hadoop"与"Master.Hadoop"之间建立起无password登录。这样,Master能无password验证登录每一个Slave,每一个Slave也能无password验证登录到Master。
SSH无password登陆配置的更多相关文章
- Linux 批量建立信任关系,实现ssh无password登陆的脚本
作用: 把当前机器的ssh公钥拷贝到其它机器.以实现从当前机器能够ssh无password登陆到其它机器 用法: 1)把要加入的ip地址写入到一个文件里.比方host 2)把脚本保存为sh文件,如 i ...
- 正式生产环境下hadoop集群的DNS+NFS+ssh免password登陆配置
博客地址:http://www.loveweir.com/ 环境虚拟机centos6.5 主机名h1 IP 192.168.137.11 作为DNS FNS的server 主机名h2 IP 19 ...
- 配置SSH无密钥登陆(三)
配置SSH无密钥登陆 (1).关闭防火墙 对每个虚拟机进行如下操作: su chkconfig iptables off 执行之后重启虚拟机:reboot (2).关闭之后,在maste ...
- ssh免密登陆配置
目录 ssh免密登陆 在A工作站上输入 B服务器上输入 登陆 ssh初次登陆询问 1.单次取消 2.ansible中增加链接参数 3.修改ansible配置参数[推荐] 4.修改服务器上的ssh_co ...
- SSH免密登陆配置过程和原理解析
SSH免密登陆配置过程和原理解析 SSH免密登陆配置过很多次,但是对它的认识只限于配置,对它认证的过程和基本的原理并没有什么认识,最近又看了一下,这里对学习的结果进行记录. 提纲: 1.SSH免密登陆 ...
- ssh无密钥登陆的简单配置
主要目的是把本地的公钥放到远端被登陆的host上. 本地操作: # ssh-keygen # ssh-copy-id user@host 远端sshd_config配置: RSAAuthenticat ...
- Linux 配置SSH 无密钥登陆
根据SSH 协议,每次登陆必须输入密码,比较麻烦,SSH还提供了公钥登陆,可以省去输入密码的步骤. 公钥登陆:用户将自己的公钥存储在远程主机上,登陆的时候,远程主机会向用户发送一串随机字符串,用户用自 ...
- 4 weekend110的hdfs&mapreduce测试 + hdfs的实现机制初始 + hdfs的shell操作 + 无密登陆配置
Hdfs是根/目录,windows是每一个盘符, 1 从Linux里传一个到,hdfs里去 2 从hdfs里下一个到,linux里去 想从hdfs里,下载到linux, 涨知识,记住,hdfs是建 ...
- 配置ssh无密钥登陆
ssh 无密码登录要使用公钥与私钥. linux下可以用用ssh-keygen生成公钥/私钥对,下面以CentOS为例. 有机器LxfN1(192.168.136.128),LxfN2(192.168 ...
随机推荐
- bzoj1010: [HNOI2008]玩具装箱toy(DP+斜率优化)
1010: [HNOI2008]玩具装箱toy 题目:传送门 题解: 很明显的一题动态规划... f[i]表示1~i的最小花费 那么方程也是显而易见的:f[i]=min(f[j]+(sum[i]-su ...
- 基于机器学习的web异常检测——基于HMM的状态序列建模,将原始数据转化为状态机表示,然后求解概率判断异常与否
基于机器学习的web异常检测 from: https://jaq.alibaba.com/community/art/show?articleid=746 Web防火墙是信息安全的第一道防线.随着网络 ...
- 18.查询效率最高的unordered_map
#include <string> #include <iostream> //查询性能最高 //增删查改与map是一样的,但是本质区别就是unordered_map底层是ha ...
- Spring4+SpringMVC+MyBatis登录注册详细
项目结构: package com.mstf.controller; import org.springframework.stereotype.Controller; import org.spri ...
- 安装vue时使用npm install 报错
npm ERR! Darwin 14.3.0 npm ERR! argv "/usr/local/Cellar/node/6.4.0/bin/node" "/usr/lo ...
- CentOS7.3 下开放防火墙的端口
CentOS 7.3默认使用的是firewall作为防火墙,这里改为iptables防火墙. 1:关闭firewall: systemctl stop firewalld.service system ...
- Redis-Sentinel原理及配置详解【转】
https://www.cnblogs.com/zhoujinyi/p/5570024.html
- 由防止表单重复提交引发的一系列问题--servletRequest的复制、body值的获取
@Time:2019年1月4日 16:19:19 @Author:QGuo 背景:最开始打算写个防止表单重复提交的拦截器:网上见到一种不错的方式,比较合适前后端分离,校验在后台实现: 我在此基础上 ...
- 移动端(手机端)页面自适应解决方案—rem布局篇
移动端(手机端)页面自适应解决方案-rem布局 假设设计妹妹给我们的设计稿尺寸为750 * 1340.结合网易.淘宝移动端首页html元素上的动态font-size属性.设计稿尺寸.前端与设计之间协作 ...
- [HNOI2006]超级英雄(二分+网络流)
[HNOI2006]超级英雄 题目描述 现在电视台有一种节目叫做超级英雄,大概的流程就是每位选手到台上回答主持人的几个问题,然后根据回答问题的多少获得不同数目的奖品或奖金.主持人问题准备了若干道题目, ...