• 结合Hadoop,简单理解SSH


    在启动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文件夹下

  • 相关阅读:
    第二周作业
    第一周作业
    抓老鼠啊~亏了还是赚了?
    打印沙漏
    寒假作业2
    我与老师
    自我介绍
    第九周课程总结&实验报告(七)
    第八周课程总结&实验报告(六)
    第七周实验报告(五)&周总结
  • 原文地址:https://www.cnblogs.com/hujiapeng/p/5934711.html
Copyright © 2020-2023  润新知