SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层和传输层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。

在Hadoop集群或其他集群中广泛应用用,可用于机器之间免密码登录和执行脚本,如的Hadoop集群中NameNode启动的时候会远程执行脚本把集群中DataNode的也一起启动起来。

这里主要介绍SSH的配置和登录失败的情况

SSH配置

集群中的每台主机上打开配置

sudo vim /etc/ssh/sshd_config

开启下面的选项

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

生成SSH密钥

集群中的每台主机上执行下面命令,一路回车,可生成本机的rsa类型的密钥。

ssh-keygen -t rsa

执行完之后在~/.ssh/目录下会生成一个保存有公钥的文件:id_rsa.pub

把公钥写入authorized_keys文件

把自己的公钥拷贝到集群中的Master机

ssh-copy-id hadoop@HadoopMaster

最终在Master机上生成如下的内容的~/.ssh/authorized_keys文件:

 
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEArYU2kMXsu75Gzwvuby7OoGzC7GVwxVo+ol/7nJVD    BpKpJLRHRe/d2HSNe9ZZRWLK2tU0e41baMxrYRoAKJA2ujcWfy7t57c3ArO9hA7KJy7MqMiT8WHQ    M3I2Afsx6sVKeQU/czDLXHn+KjwKbR8z0tuycgtxgkaWx1PCpCKeFDAXDVvxYcurSUNaIGL5Egzu    Iy97N52ld/WxUZnRRsTPdpW88JkhWdOV1Bdo4O67rNv5tSYKHXfPwqi8NekqoHIExgVRsHLvM8fe    xvV4mo8lXYdQPRCyrtM9/V+4kSW8eaBO7w6hM9YVZIspSqx0+OqibWTvqSmiAVh0JmUT0MCeVQ==     hadoop@HadoopMaster
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA7n27x4qSzRQNGQAL+rT1+91IQnM9cwZYFeSUzrJD GDfwCTJMKnRBYxrDMxTAM6MKjfwwkPzXnbKHLQnDiJKUSdF8H2xcgDMBJLssVQjOc2jSEg/VppQN hJwObbIL3k1FbU2KxkOp7yW5PIodZrgUwlH5wdXtfsPKimvv72uA1KUiqPbYA3ZJqXw9Bt87K6Sv IAkvUjshnfaS+wNEBVwW1dhXyz6DHuY+Tn9330+1oYfdmgSjS4ZqvZVothhhV58DNwzAYwINCpBA tkjFbk/SOf0q/4rSJRpe2yH9xOuZdwqXMfk3dkp0UFZkV2EVSLyaCNKwTbSuKN75FWhgl8QB7w== hadoop@HadoopSlave1
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAw91O/1NWnbr6/vop+xwnqR/XYNpwkWselzyHNqgD PYgXXsDHsvOZbpTX7pgOTgVSmlZetCdX4C1lsc/PO8IitvvBS/qWU216lXaqlW61RcliCrYH/RwN f8XTLx/Ga04w2qEIFlLOiuH6x/KA22muOLYaSIefXv38xj0Hj41iE5ZIseaLuJogn7iqJ6Fq0wQH i6ueF9BasSWnOHhn6CJamYz3FC9r2m3vwPMkgagPp1FdYyDxodK+MZlwu6TxqP6QQ7BY/Wh5DZK8 C8zpDOZGQgWOrghF58TlZSmJYmukv1NqsY8PCFuoj7vfoUzVKQkyKcEiohwBcTb50vGPl06bMQ== hadoop@HadoopSlave2
 

把HadoopMaster的authorized_keys拷贝到HadoopSlave1和HadoopSlave2

scp ~/.ssh/authorized_keys hadoop@HadoopSlave1:~/.ssh/
scp ~/.ssh/authorized_keys hadoop@HadoopSlave2:~/.ssh/

重启SSH服务

sudo service sshd restart

测试连接

ssh HadoopSlave1

常见免密码登录失败分析

配置问题

  1. 检查配置文件/etc/ssh/sshd_config是否开启了AuthorizedKeysFile选项
  2. 检查AuthorizedKeysFile选项指定的文件是否存在并内容正常

目录权限问题

  1. ~权限设置为700
  2. ~/.ssh权限设置为700
  3. ~/.ssh/authorized_keys的权限设置为600
sudo chmod 700 ~
sudo chmod 700 ~/.ssh
sudo chmod 600 ~/.ssh/authorized_keys

设置完了记得重启ssh服务

转载请注明出处:http://www.cnblogs.com/keitsi/p/5653520.html

CentOS 配置集群机器之间SSH免密码登录的更多相关文章

  1. 集群中配置多台机器之间 SSH 免密码登录

    集群中配置多台机器之间 SSH 免密码登录 问题描述 由于现在项目大多数由传统的单台机器部署,慢慢转变成多机器的集群化部署. 但是,这就涉及到机器间的 SSH 免密码互通问题. 当集群机器比较多的时候 ...

  2. hadoop(八)集群namenode启动ssh免密登录(完全分布式五)|10

    前置章节:hadoop集群配置同步(hadoop完全分布式四)|10 启动namenode之前: 1. 先查看有无节点启动,执行jps查看,有的话停掉 [shaozhiqi@hadoop102 ~]$ ...

  3. 集群环境搭建-SSH免密码登陆(二)

    1.打开sshd配置 命令: vi /etc/ssh/sshd_config 找到以下内容,并去掉注释符”#“ RSAAuthentication yes PubkeyAuthentication y ...

  4. Linux机器之间SSH免密钥登录设置

    SSH免密钥登录 私钥:密钥留在本机 公钥:密钥发给其他机 hadoop01 生成密钥: ssh-keygen -t rsa (密钥存放路径:/root/.ssh) id_rsa:私钥 id_rsa. ...

  5. ssh 免密码登录实现批量处理

    搭建集群的时候ssh 免密码登录是一个问题以下脚本将实现批量处理 文件1主机名:host 17.19.18.11:12317.19.18.12:123 文件2:ssh_setup.py #!/usr/ ...

  6. centos配置ssh免密码登录

    master.slave1两台机器实现ssh免密码登录,user:hadoop,passwd:123456 1.设置master: vi /etc/sysconfig/network hostname ...

  7. 配置ssh免密码登录——集群学习日记

    度过了难熬的考试月时期之后,最近和小伙伴一起参加的的比赛进入了紧张的准备时期.在进行工作的时候,发现有很多基础的知识点,自己不是很清楚以及了解,所以在想,要不就边学习的时候边写下学习日记,以供自己后来 ...

  8. Hadoop集群搭建过程中ssh免密码登录(二)

    一.为什么设置ssh免密码登录 在集群中,Hadoop控制脚本依赖SSH来执行针对整个集群的操作.例如,某个脚本能够终止并重启集群中的所有守护进程.所以,需要安装SSH,但是,SSH远程登陆的时候,需 ...

  9. CentOS 6.5配置SSH免密码登录

    centos 系统对权限的设置非常微妙,如果权限设置大了则ssh 拒绝,如果权限小了,则ssh 更是被拒绝(我曾经配置好久没有打通,就是因为权限过大的原因) 参考链接:http://www.linux ...

随机推荐

  1. Bzoj4598: [Sdoi2016]模式字符串 点分治 哈希

    国际惯例的题面:这种关于树上路径的题,我也没什么好办法,只好点分治.考虑当前分治重心为root,如何统计经过分治重心的路径的答案.我们令prf[i]表示某个点到root的路径(不含root)已经循环匹 ...

  2. COGS.1901.[模板][国家集训队2011]数颜色(带修改莫队)

    题目链接 COGS BZOJ2120 洛谷P1903 /* Add和Subd函数中的vis不能直接设为=1或=0 比如 l=1,r=0 -> l=3,r=5 时,[1,5]的vis标记全都是1 ...

  3. EF6 简单增删改查示例代码

    示例一: private DbContext _dbContext; public DbContext CurrentContext { get { if (_dbContext == null) { ...

  4. Android GUI之View绘制流程

    在上篇文章中,我们通过跟踪源码,我们了解了Activity.Window.DecorView以及View之间的关系(查看文章:http://www.cnblogs.com/jerehedu/p/460 ...

  5. 【Spark】Spark性能调优

    官网:http://spark.apache.org/docs/latest/tuning.html 1.引言 提到Spark与Hadoop的区别,基本最常说的就是Spark采用基于内存的计算方式,尽 ...

  6. Eclipse的预设的Include的路径

    http://www.eclipse.org/community/eclipse_newsletter/2013/october/article4.php 说明链接 http://www.eclips ...

  7. 内联汇编中的asm和__asm__

    基本的内联汇编代码: asm格式: asm("assembly code"):   使用替换的关键字: 如果必须的话,可以改变用于标识内联汇编代码段的关键字asm.ANSI C规范 ...

  8. hive 字段名称显示

    首先查看一个sql 1.首先存在一个数据表tmp CREATE TABLE tmp( platform string, channel string, chan_value string, uid s ...

  9. C# Chart使用总结 2 ---------chart悬停选定数值操作

    1.用鼠标悬停事件处理 private void Form1_Load(object sender, EventArgs e) { //connStr = connPath1 + conn2; fil ...

  10. Matlab如何连接Oracle数据库及基本操作

    语言和语法都是相通的,了解Oracle的连接和处理,对于其他的数据库也是类似的. 一 通过ODBC实现到oracle的连接 )控制面板->管理工具->ODBC数据源->在系统DSN中 ...