`

hadoop_ssh简介

 
阅读更多

 

 

 背景:

 

1 在hadoop分布式集群的机器之间,务必关闭防火墙,因为开启下,仅仅放开很少的几个端口,这个给集群见的通讯带来很不方便

 

2 ssh简介:

    a) 是加密协议,完成加密通讯的一个协议,

         对远程登陆和远程执行命令加密,防止网络监听而出现的密码泄漏

    b) 主要使用了rsa算法(不对称加密算法),通过执行ssh-keygen -t rsa

         来生成公钥id_rsa.pub,私钥id_rsa 这一对密钥对

    c) 生成的id_rsa.pub需要拷贝到目标服务器中,以保持到此机器时免密码登陆的目的

    d) 用来取代传统的telnet和R系列命令(rlogin,rsh,rexec等)

 

 

2.1 分类:
      目前有SSH1和SSH2,SSH2协议兼容SSH1,
      目前实现SSH1和SSH2协议的主要软件有
      a: OpenBSD组织开发的一款免费的SSH-->OpenSSH
      b: SSH Communications Security Corporation公司的收费软件SSH Communications

      在linux、FreeBSD、OpenBSD、NetBSD等免费类UNIX系统种,都使用OpenSSH作为SSH协议的实现软件.

 

3 如下没有配置ssh免密码登陆114的情况(从113免密码登陆114)

[root@master ~]# ssh root@192.168.1.114
The authenticity of host '192.168.1.114 (192.168.1.114)' can't be established.
RSA key fingerprint is 3b:2b:d5:57:a0:44:ab:2d:bd:b8:67:35:46:0c:c5:15.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.114' (RSA) to the list of known hosts.
Address 192.168.1.114 maps to localhost, but this does not map back to the address - POSSIBLE BREAK-IN ATTEMPT!
root@192.168.1.114's password: 
Last login: Wed Jul 30 02:19:40 2014 from 192.168.1.156
[root@sliver114 ~]#

如上免登陆流程解释如下:

第一次登陆到114后,ssh就会把登陆的ssh指纹放在114机器用户home/.ssh/know_hosts 文件中,

eg:

[root@master .ssh]# cat known_hosts 
sliver114,192.168.1.114 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAtahDTCWYEl8EXku1wLOUH8j1Jr6C5hnopHW3oYevXmAC75ffshnYhkEe2oYdjcfYkO/SoJnUMfpX0rIDWKjb92U3Rgt9mNCoWqRNkRiGzdinVZ3QBYnz27QOOjEZtItIYzEhzMfNtUcmAa8Z8FLa/RHkPqkYi0+xWTb4TCjMkTdxGStfA1exsz/IuCQshVCTtCiiPOfoBDkrYvpIS2Vw0L46HYhqq1pruSpuzTekOTOZW8GoZ85s8nlhrVCGskkGQrA1H7567aYqT0exnXmZez605FN3/TR7Vyc9eb7xcttk1rB4e+pntZUK8PAEyo/c5a6nBDesEszjf15yGMAMNQ==

 
如果远程系统重装过系统,ssh指纹已经改变,你需要把 .ssh 目录下的know_hosts中的相应指纹删除,再登陆回答yes,方可登陆。
.ssh目录权限(用户自己的目录)必须是700,用户的home目录不能给其他用户读写查看权限,否则ssh服务器会拒绝登陆,
如果发生不能登陆的问题,请察看服务器上的日志文件/var/log/secure。通常能很快找到不能登陆的原因。

 

 

 

 

 

 4 如下流程实现机器 113, 114之间无密码登陆操作(前提是两台机器的防火墙都关闭):

 

    4.1)分别在113, 114机器上 通过ssh-keygen -t rsa 命令创建各自机器的 密钥对

            如下是114生成自己密钥对, 同样写法生成113的密钥对

[root@sliver114 ~]# ssh-keygen -t rsa

[root@sliver114 ~]# cd ~/.ssh
[root@sliver114 .ssh]# ls
id_rsa  id_rsa.pub

 

    4.2)  实现113机器到114机器的ssh连接:

 

 4.2.1)拷贝113公钥到114 并重命名

[root@master .ssh]# scp id_rsa.pub  root@192.168.1.114:/root/.ssh/authorized_keys



  4.2.2)在114中查询拷贝后的结果,并确认拷贝过来的文件权限为-rw-r--r-- 

[root@sliver114 .ssh]# ls -l
total 24
-rw-r--r-- 1 root root  393 Jul 30 02:48 authorized_keys    必须确定此文件是左侧权限 否则需要手动修改
-rw------- 1 root root 1675 Jul 30 02:45 id_rsa
-rw-r--r-- 1 root root  396 Jul 30 02:45 id_rsa.pub
[root@sliver114 .ssh]#

 

 4.2.3)113中 ssh 114 检查ssh免密码登陆是否生效,如果直接进入114 则单项到114成功

[root@master .ssh]# ssh 192.168.1.114
Address 192.168.1.114 maps to localhost, but this does not map back to the address - POSSIBLE BREAK-IN ATTEMPT!
Last login: Wed Jul 30 02:28:21 2014 from 192.168.1.113
[root@sliver114 ~]#

 

 

4.3) 实现114机器到113机器的ssh连接:

 

执行步骤和 4.2)一样, 这里不再详细贴操作流程

[root@sliver114 .ssh]# scp id_rsa.pub  root@192.168.1.113:/root/.ssh/authorized_keys
[root@sliver114 .ssh]# ssh 192.168.1.113   或者写成 
[root@sliver114 .ssh]# ssh root@192.168.1.113

 

 

 4.4) ssh面密码登陆交互流程如下:

 




 
 

 

 

 5 生成密钥和多机器免密钥登陆续:

 

命令解释:[root@master .ssh]# ssh-copy-id -i sliver103 

表示将master机器的公钥信息拷贝到sliver103机器的authorized_keys文件内

 

生成密钥解释续:

[root@mail ~]# ssh-keygen -b 1024 -t dsa -C gucuiwen@myserver.com
Generating public/private dsa key pair.
#提示正在生成,如果选择4096长度,可能需要较长时间
Enter file in which to save the key (/root/.ssh/id_dsa): 
#询问把公钥和私钥放在那里,回车用默认位置即可
Enter passphrase (empty for no passphrase): 
#询问输入私钥密语,为了实现自动登陆,应该不要密语,直接回车
Enter same passphrase again: 
#再次提示输入密语,再次直接回车
Your identification has been saved in /root/.ssh/id_dsa.
Your public key has been saved in /root/.ssh/id_dsa.pub.
#提示公钥和私钥已经存放在/root/.ssh/目录下
The key fingerprint is:
71:e5:cb:15:d3:8c:05:ed:05:84:85:32:ce:b1:31:ce gucuiwen@myserver.com
#提示key的指纹



# ssh-keygen -b 1024 -t dsa -C gucuiwen@myserver.com:
-b 1024 采用长度为1024字节的公钥/私钥对,最长4096字节,一般1024或2048就可以了,太长的话加密解密需要的时间也长。
-t dsa  t:type 采用dsa类型加密方式的公钥/私钥对,除了dsa还有rsa方式,rsa方式最短不能小于768字节长度。
-C gucuiwen@myserver.com 对这个公钥/私钥对的一个注释和说明,一般用拥有者的邮件代替。可以省略不写,更多其他参数请man ssh-keygen。

ssh-keygen -t rsa : 通常我们直接用次方式来创建公钥私钥,生成结果如下:
  id_rsa  id_rsa.pub  known_hosts



id_dsa.pub: 产生的公钥,ssh默认的公钥文件是用户home/.ssh/authorized_keys,
把此本机产生的公钥id_dsa.pub需要cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys 操作,重命名成需要的名称然后
将客户端的authorized_keys上传到需要登陆的服务器的对应用户目录的home目录的.ssh目录下,
,这个文件中可以存放多个客户端的公钥文件,就好比一个大门上可以上很多锁,可以有不同的钥匙来尝试开锁,只要有一个锁被打开了,门就可以打开了。

eg: 多客户端机器实现无密码链接同一个服务器时,将多个客户端的公钥拷贝到服务端写法:
[root@master .ssh]# ssh-copy-id -i sliver103   这样master就可以无密码下访问 sliver103  
[root@sliver104 .ssh]# ssh-copy-id -i sliver103 这样sliver104就可以无密码下访问 sliver103 
查看 sliver103的authorized_keys:  
发现会增加:  
...== root@master  
...== root@sliver104
印证了 服务端公钥文件--->一个大门上可以上很多锁,每个锁都是对应客户端的公钥文件的说法

 

 多机器ssh互通下,

主要涉及如下两个文件,起作用为:

authorized_keys  存放所有客户端的公钥文件(实际就是将所有客户端rsa产生的pub文件拷贝到服务端)
 known_hosts  存放所有ssh进来的机器指纹

 

  • 大小: 155.7 KB
  • 大小: 1.4 MB
  • 大小: 10.7 KB
分享到:
评论

相关推荐

    大数据技术Hadoop3.x 2021年

    01_Hadoop_开篇_课程整体介绍.mp4 03_Hadoop_概论_大数据的特点.mp4 ...29_Hadoop_入门_ssh免密登录.mp4 30_Hadoop_入门_集群配置.mp4 31_Hadoop_入门_群起集群并测试.mp4 32_Hadoop_入门_集群崩溃处理办法.mp4 34_

    Hadoop集群pdf文档

    Hadoop_Hadoop集群(第5期副刊)_JDK和SSH无密码配置 Hadoop_Hadoop集群(第6期)_WordCount运行详解 Hadoop_Hadoop集群(第7期)_Eclipse开发环境设置 Hadoop_Hadoop集群(第8期)_HDFS初探之旅 Hadoop_Hadoop集群...

    hadoop_0.23.9安装指南

    Hadoop 0.23.9 安装指南 Apache Hadoop 是一个开源框架,它允许使用简单的编程模型在跨计算机集群存储和处理大量数据。它主要用于大数据处理,是大数据技术栈中的重要组成部分。安装 Hadoop 需要进行一系列的准备...

    Hadoop_windows运行解决办法

    在Windows上运行Hadoop需要一个名为Winutils的工具,它提供了与Linux系统上`ssh`和`hadoop`命令类似的功能。由于官方并未提供Windows版本,你需要找到一个可靠的第三方实现,将其放入`HADOOP_HOME\bin`目录下,并...

    hadoop2.7.x_winutils_exe&&hadoop_dll.zip

    `winutils.exe`是Windows用户必须安装的,因为它弥补了Windows系统缺乏的一些Unix/Linux命令行工具,如`ssh`、`hadoop fs`等。 `hadoop.dll`是Hadoop在Windows环境中运行所必需的动态链接库文件,它包含了Hadoop...

    hadoop入门最好的文档

    6.细细品味Hadoop_Hadoop集群(第5期副刊)_JDK和SSH无密码配置 7.细细品味Hadoop_Hadoop集群(第6期)_WordCount运行详解 8.细细品味Hadoop_Hadoop集群(第7期)_Eclipse开发环境设置 9.细细品味Hadoop_Hadoop集群...

    hadoop_mock:模拟 hadoop 命令行界面的实用程序

    概述$ export HADOOP_SSH_HOST=rnd07.local$ export HADOOP_SSH_OPTS=User=afyodorov$ export HADOOP_SSH_SUDO=hdfs$ hadoop_ssh fs -ls /flume/logs/bs/2014/09/03Found 4 itemsdrwxr-xr-x - hdfs supergroup 0 ...

    CentOS上搭建Hadoop2.5.2_CentOS搭建hadoop_云计算_源码

    在搭建Hadoop 2.5.2环境的过程中,选择CentOS作为操作系统是一个常见的选择,因为其稳定性和与开源软件的良好兼容性。以下是基于CentOS 7.0搭建Hadoop 2.5.2的详细步骤,以及涉及的相关知识点: 1. **系统准备**: ...

    hadoop集群配置ssh免登录shell脚本

    本篇将详细讲解如何配置Hadoop集群的SSH免登录,并介绍提供的shell脚本`hadoop_ssh_auto_login.sh`以及辅助文件`ip_hosts.txt`的用途。 首先,理解SSH免登录的基本原理。SSH免登录依赖于公钥认证机制,即在每台主机...

    细细品味Hadoop_Hadoop集群(第5期副刊)_JDK和SSH无密码配置

    ### 细细品味Hadoop:深入理解Hadoop集群与JDK及SSH无密码配置 #### Linux环境下JDK的配置详解 ...总之,正确的JDK环境配置与SSH无密码登录机制是搭建稳定、高效Hadoop集群的基石,需要在部署初期给予充分重视。

    hadoop2.6 centos6.5 伪分布式环境部署 实例

    Hadoop 2.6 伪分布式环境部署实践 Hadoop 是一个开源的大数据处理框架,由 Apache 维护。它提供了一个可靠、高效、可扩展的分布式计算框架,广泛应用于数据处理、数据挖掘、机器学习等领域。本文将详细介绍如何在 ...

    基于centOS的hadoop集群安装

    基于 CentOS 的 Hadoop 集群安装 概述 本文将指导读者在 CentOS 操作系统上安装 Hadoop 集群,包括安装 JDK、Hadoop、配置环境变量、修改 Hadoop 配置文件等步骤。 安装 JDK 在安装 Hadoop 之前,需要先安装 JDK...

    Hadoop_HBase_Pig

    - 编辑`/etc/sysconfig/iptables`文件,添加规则以开放Hadoop所需的端口,例如HTTP端口80和SSH端口22。 #### HBase的安装与配置 HBase的安装同样需要先解压其安装包。配置`Hbase/conf`目录下的`hbase-env.sh`和`...

    大数据与云计算培训学习资料 Hadoop集群 细细品味Hadoop_第5期副刊_JDK和SSH无密码配置 共9页.pdf

    "大数据与云计算培训学习资料 Hadoop集群 细细品味Hadoop" 该资源主要讲述了Hadoop集群的配置和使用,特别是JDK和SSH无密码配置。以下是相关知识点的总结: 一、Hadoop集群概述 * Hadoop是Apache基金会下的一个...

    细细品味Hadoop_Hadoop集群CentOS安装配置.rar_hadoop

    在IT行业中,大数据处理是一个至关重要的领域,而Hadoop作为其中的明星框架,为企业提供了高效、可扩展的数据处理解决方案。本篇文章将详细讲解Hadoop在CentOS操作系统上的安装与配置,帮助你深入理解Hadoop集群的...

    Hadoop_2.X,eclipse开发插件

    5. 连接远程Hadoop集群:在Windows 7上,Eclipse需要通过SSH(Secure Shell)协议连接到远程Hadoop集群。因此,确保已安装并配置了SSH客户端,如PuTTY,并知道集群的SSH登录凭据。 6. 部署和运行:通过Eclipse插件...

    SSH无密码登录配置(主要针对Hadoop配置)

    在Hadoop这样的分布式计算环境中,SSH无密码登录配置至关重要,因为它简化了节点间的通信,提高了运维效率。以下是关于SSH无密码登录配置的详细解释。 **一、SSH原理** SSH通过加密网络数据流,确保在非安全网络上...

    ky2009888#hadoop_learn_docs#ssh免密登录1

    1、打开三个节点(我的是三个) 2、创建密钥 3、追加密钥到autorized_keys文件,并设置权限 4、三个节点都进行 2 .3 两步操作之后

Global site tag (gtag.js) - Google Analytics