在启动dfs和yarn时,需要多次输入密码,不但启动本机进程还有辅服务器启动那些节点也需要相应密码,主与辅服务器之间是通过SSH连接的,并发送操作指令

一、ssh密码远程登录

1、使用ssh连接另一台centos7系统,现在我是在192.168.36.133服务器上,用户是hjp要连接192.168.36.134服务器并使用134服务器root用户登录

[hjp@localhost ~]$ ssh root@192.168.36.134

第一次登入需要加密,问是否继续,输入yes继续即可,然后会输入远程服务器用户对应的密码,这样就远程登录成功了

[hjp@localhost ~]$ ssh root@192.168.36.134
root@192.168.36.134's password:
Last login: Thu Oct 6 19:19:41 2016 from 192.168.36.133
[root@localhost ~]# ifconfig
eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.36.134 netmask 255.255.255.0 broadcast 192.168.36.255
inet6 fe80::20c:29ff:fe41:166c prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:41:16:6c txqueuelen 1000 (Ethernet)
RX packets 4088 bytes 420259 (410.4 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 2585 bytes 728262 (711.1 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 0 (Local Loopback)
RX packets 93876 bytes 380613241 (362.9 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 93876 bytes 380613241 (362.9 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

[root@localhost ~]#

IP已经变了,证明远程登录成功,使用exit命令便退回到本机

2、ssh远程命令操作,比如下面远程创建一个文件夹testssh

首先看一下134服务器home路径下文件

[root@localhost home]# ll
total 0
drwxr-xr-x. 3 root root 51 Oct 6 11:03 hadoop
drwxr-xr-x. 3 root root 56 Oct 6 10:58 jdk
[root@localhost home]#

然后在133服务器上用ssh远程在home下创建一个testssh文件夹,注意如果当期用户名和远程服务器用户名一样,可以省略@符号及前面用户名,直接写服务器地址

[hjp@localhost home]$ ssh root@192.168.36.134 mkdir /home/testssh
root@192.168.36.134's password:
[hjp@localhost home]$

现在在看一下134服务器home文件夹下文件

[root@localhost home]# ll
total 0
drwxr-xr-x. 3 root root 51 Oct 6 11:03 hadoop
drwxr-xr-x. 3 root root 56 Oct 6 10:58 jdk
drwxr-xr-x. 2 root root 6 Oct 6 19:48 testssh
[root@localhost home]#

二、ssh公钥私钥登录

1、公钥私钥简单实现原理

比如两台服务器A、B,A要通过SSH远程B,A首先本地生成公钥私钥对,将公钥发送给B,B收到A的公钥后加入到自己授权列表中。此时A、B公钥私钥对配置完成

在A请求远程B时,B先在授权列表中检查是否有A相关登录用户配置,如果有,那么就B就用A的公钥加密一段信息,发送给A,A收到后用私钥解密,然后发回给B,B就接收A解密后的信息,与发出的信息进行校验,如果校验成功则允许登录

2、现有192.168.36.133和192.168.36.134两台服务器,用133去远程134

  1)、[hjp@localhost ~]$ ssh-keygen -t rsa    -t用来指定加密算法,此处使用的是rsa,生成公钥私钥对;回车后会有一些配置操作,全部使用默认

  2)、通过Enter file in which to save the key (/home/hjp/.ssh/id_rsa): 可知秘钥存放位置

[hjp@localhost ~]$ cd /home/hjp/.ssh
[hjp@localhost .ssh]$ ll
total 12
-rw-------. 1 hjp hjp 1679 Oct 7 13:27 id_rsa
-rw-r--r--. 1 hjp hjp 407 Oct 7 13:27 id_rsa.pub
-rw-r--r--. 1 hjp hjp 176 Oct 7 12:02 known_hosts
[hjp@localhost .ssh]$

  id_rsa为私钥,id_rsa.pub为公钥

  3)、通过ssh拷贝公钥到134服务器上,上面也说过,如果两个服务器登录用户一样就可以省略@符号及前面用户名

[hjp@localhost .ssh]$ scp id_rsa.pub root@192.168.36.134:/home/testssh
root@192.168.36.134's password:
id_rsa.pub 100% 407 0.4KB/s 00:00
[hjp@localhost .ssh]$

  已经成功拷贝过去

  4)、在134服务器上将公钥加入到授权列表中,授权列表文件authorized_keys在.ssh文件夹下,如果没有就新建,一般没有配置过是不存在这个文件的

[root@localhost .ssh]# cat /home/testssh/id_rsa.pub >>authorized_keys

然后cat authorized_keys 可以查看到已经加入到授权列表文件中,这样就配置完成了,使用133通过SSH远程134就不用输入密码了。

注意:如果新建的authorized_keys文件,权限一般是-rw-rw-r--,必须改权限为-rw-------(命令:chmod 600 authorized_keys)

  5)、测试登录

[hjp@localhost .ssh]$ ssh root@192.168.36.134
Last login: Thu Oct 6 20:48:19 2016 from 192.168.36.1
[root@localhost ~]#

公钥私钥和authorized_keys 都在~/.ssh文件夹下

结合Hadoop,简单理解SSH的更多相关文章

  1. 1.Hadoop简单理解与总结。

    1.什么是Hadoop? Hadoop是一种分布式数据和计算的框架.它很擅长存储大量的半结构化的数据集.数据可以随机存放,所以一个磁盘的失败并不会带来数据丢失.Hadoop也非常擅长分布式计算——快速 ...

  2. git的简单理解及基础操作命令

    前端小白一枚,最近开始使用git,于是花了2天看了廖雪峰的git教程(偏实践,对于学习git的基础操作很有帮助哦),也在看<git版本控制管理>这本书(偏理论,内容完善,很不错),针对所学 ...

  3. 简单理解Struts2中拦截器与过滤器的区别及执行顺序

    简单理解Struts2中拦截器与过滤器的区别及执行顺序 当接收到一个httprequest , a) 当外部的httpservletrequest到来时 b) 初始到了servlet容器 传递给一个标 ...

  4. [转]简单理解Socket

    简单理解Socket 转自 http://www.cnblogs.com/dolphinX/p/3460545.html  题外话 前几天和朋友聊天,朋友问我怎么最近不写博客了,一个是因为最近在忙着公 ...

  5. Js 职责链模式 简单理解

    js 职责链模式 的简单理解.大叔的代码太高深了,不好理解. function Handler(s) { this.successor = s || null; this.handle = funct ...

  6. Deep learning:四十六(DropConnect简单理解)

    和maxout(maxout简单理解)一样,DropConnect也是在ICML2013上发表的,同样也是为了提高Deep Network的泛化能力的,两者都号称是对Dropout(Dropout简单 ...

  7. Deep learning:四十二(Denoise Autoencoder简单理解)

    前言: 当采用无监督的方法分层预训练深度网络的权值时,为了学习到较鲁棒的特征,可以在网络的可视层(即数据的输入层)引入随机噪声,这种方法称为Denoise Autoencoder(简称dAE),由Be ...

  8. 简单理解dropout

    dropout是CNN(卷积神经网络)中的一个trick,能防止过拟合. 关于dropout的详细内容,还是看论文原文好了: Hinton, G. E., et al. (2012). "I ...

  9. 我们为之奋斗过的C#-----C#的一个简单理解

    我们首先来简单叙述一下什么是.NET,以及C#的一个简单理解和他们俩的一个区别. 1 .NET概述 .NET是Microsoft.NET的简称,是基于Windows平台的一种技术.它包含了能在.NET ...

随机推荐

  1. URL(待整合到HTTP书中哦)

    一:scheme://host.domain:port/path/filename scheme - 定义因特网服务的类型.最常见的类型是 http host - 定义域主机(http 的默认主机是 ...

  2. 第一章:java语言概述与开发环境

    前言: 1.程序是什么? 程序是对现实世界的数字化模拟! 2.编程语言是工具,程序的作用就是解决问题!  重要的思路! 该知识点能解决什么问题?   1.语言特性:单继承.多接口!       纯面向 ...

  3. “Ceph浅析”系列之二——Ceph概况

    本文将对Ceph的基本情况进行概要介绍,以期读者能够在不涉及技术细节的情况下对Ceph建立一个初步印象. 1. 什么是Ceph? Ceph的官方网站Ceph.com上用如下这句话简明扼要地定义了Cep ...

  4. spring 集成shiro 之 自定义过滤器

    在web.xml中加入 <!-- 过期时间配置 --> <session-config><session-timeout>3</session-timeout ...

  5. 9.28 Java基本数据类型作业

    要求:声明各数据类型变量或常量,赋值并进行输出. 以下为代码: public class SJLX {//公共类 public static void main(String[] args) { // ...

  6. VS 2013 未找到与约束contractname Microsoft.VisualStudio.Utilities.IContentTypeRegistryService...匹配的导出[vs故障]【转】

    未找到与约束 contractname Microsoft.VisualStudio.Utilities.IContentTypeRegistryService RequiredTypeIdentit ...

  7. C# for循环及循环嵌套

    格式(for循环四要素:初始条件.循环条件.循环体.状态改变) for (int i=1<初始条件>;i<=n<循环条件>;i++<状态改变>) { < ...

  8. 在浏览器中输入URL后执行的全部过程的个人总结

    这个问题经常可以看到,今天我好好总结了下,是从网络模型的角度来分析问题的,主要涉及应用层:DNS,HTTP,传输层:TCP,网络层:IP和路由选择协议:RIP,OSPF(内部网关协议),BGP(外部网 ...

  9. 解决bind错误 bind: Address already in use

    关于bind错误的处理: bind: Address already in use 原因: 操作系统没有立即释放端口 解决一: 等待一段时间运行网络程序即可 解决二:通过setsockopt进行设置, ...

  10. JVM学习笔记:虚拟机性能监控

    JDK中除了包含与开发密切相关的jar包外,还包含了很多非常实用的工具.在%JAVA_HOME%\bin\目录下面除了命令行工具外,还包括了几个强大的可视化工具.这些工具可以辅助我们开发.调试应用程序 ...