zoukankan      html  css  js  c++  java
  • Ubuntu下SSH无密码验证配置

    前言

    SSH为Secure Shell 的缩写,是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。越来越多的小伙伴们使用远程登录,而ssh安全性无疑是很高的,那么我们现在来看看如何实现ssh无密码验证配置。

    一. 准备工作

    Ubuntu版本:16.04.3

    首先要确保你的linux系统中已经安装了ssh,对于ubuntu系统一般默认只安装了ssh client,所以还需要我们手动安装ssh server:

    sudo apt-get install openssh-server

    二. SSH基本原理

    2.1 基本原理

    SSH之所以能够保证安全,原因在于它采用了公钥加密。过程如下:

    1. 远程主机收到用户的登录请求,把自己的公钥发给用户;
    2. 用户使用这个公钥,将登录密码加密后,发送回来;
    3. 远程主机用自己的私钥,解密登录密码,如果密码正确,就同意用户登录。

    2.2 基本用法

    SSH默认端口号为:22,可以根据自己的需要修改默认端口号为其它,并配合使用iptables过滤来限制远程SSH登陆的ip。常用用法如下:

    1  # 使用默认的22端口
    2  ssh root@192.168.0.1
    3  # 若修改过SSH默认端口号(例如:修改为了6666),则登陆时需要指定端口号6666
    4  ssh root@192.168.0.1 -p 6666

    三. 配置SSH无密登陆(需要root权限)

    3.1 主要用与Hadoop集群配置中:

    Hadoop运行过程中需要管理远端Hadoop守护进程,在Hadoop启动以后,NameNode是通过SSH(Secure Shell)来启动和停止各个DataNode上的各种守护进程的。这就必须在节点之间执行指令的时候是不需要输入密码的形式,故我们需要配置SSH运用无密码公钥认证的形式,这样NameNode使用SSH无密码登录并启动DataName进程,同样原理,DataNode上也能使用SSH无密码登录到 NameNode。

    1. 无密SSH登陆到自己

      首先,运行 ssh localhost 来产生 /home/用户名/.ssh 目录,然后执行下面命令

    然后通过ls -al命令查看是不是有这个隐藏的.ssh文件,如图所示:

    将生成的 “ id_rsa.pub ” 追加(这里切记是追加,不是覆盖)到授权的key里面去。这样的效果是实现了当前用户无密SSH登陆到自己:

    1  cd ~/.ssh  # 如果找不到这个文件夹,先执行一下 "ssh localhost"
    2  ssh-keygen -t rsa
    3  # 将id_rsa.pub追加到authorized_keys
    4  cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

    2. 如何实现无密登陆到其它的主机

      只需将生成的 “ id_rsa.pub " 追加到其它主机的 ” ~/.ssh/authorized_keys “ 中去。这里我们使用的方法是先将本机的 ” ~/.ssh/id_rsa.pub “ 拷贝到你想无密登陆的主机上,再在相应的主机上使用 ” cat " 命令将” ~/.ssh/id_rsa.pub “ 追加到该主机的 ” ~/.ssh/authorized_keys “ 中。

    1  # 假设我们的主机名为:A,用户名:cmfchina,ip:192.168.0.1
    2  # 想要无密SSH登陆的主机名为:B, 用户名:cmfchina,ip:192.168.0.2
    3   
    4  # 首先,我们使用A中的cmfchina用户拷贝 " ~/.ssh/id_rsa.pub " 到B的 " /home/cmfchina" 目录下(scp命令 可以在 2个 linux 主机间复制文件)
    5  scp ~/.ssh/id_rsa.pub cmfchina@192.168.0.2:/home/cmfchina  # 这里的ip也可以换为主机名
    7   
    8  # 然后,ssh登陆B,将 " /home/cmfchina/id_rsa.pub " 追加到 " ~/.ssh/authorized_keys " 中去。
    9  cat /home/cmfchina/id_rsa.pub >> ~/.ssh/authorized_keys

    下面具体步骤:

    (1)、先将本机的 ” ~/.ssh/id_rsa.pub “ 拷贝到你想无密登陆的主机上

    (2)、将刚刚从A机传过来的id_rsa.pub文件追加到目标机(这里是B)authorized_keys当中

    查看刚刚传输过来的id_rsa.pub是否存在

    追加到authorized_keys当中

    现在,我们就可以在A中使用SSH无密登陆到B的hadoop用户了,同理如果想无密登陆其它的主机都可以使用此方法。需要注意的是配置hadoop集群时需要Master和Slave可以互相SSH无密登陆。

    PS:如有问题,请留言,未经允许不得私自转载,转载请注明出处:http://www.cnblogs.com/xuliangxing/p/7428382.html 

  • 相关阅读:
    硬件重定向
    ARM处理器模式切换(含MRS,MSR指令)
    ARM处理器工作模式
    ARM处理器异常处理
    JS和H5做一个音乐播放器,附带源码
    php页面zend加密乱码的解决办法
    ZendOptimizer怎么安装?Php网站打开显示乱码
    PHP和Python如何选择?或许可以考虑这三个问题
    SQL Server 2008读书笔记(3):表
    Dijkstra算法
  • 原文地址:https://www.cnblogs.com/xuliangxing/p/7428382.html
Copyright © 2011-2022 走看看