系统环境:CentOS6.8

软件环境:SSH(yum -y install openssh-clients)

IP   地址:192.168.0.188

用户环境:root、xiaoming

      系统内置root,创建xiaoming角色的步骤如下

    1. adduser xiaoming -s /bin/bash    (创建用户名称,并且使用的shell为/bin/bash)
    2. passwd xiaoming,会提示输入密码,连续输入两次相同的密码  (如果创建的用户没有设置密码,则会失败。测试的方法:Log Out->xiaoming,使用密码是否可以登录)    

操作目的:普通的ssh进行Linux连接,会提示输入密码。通过一系列的配置可以省略密码的输入,直接登录。使用root账户无密码登录xiaoming

操作步骤:

  1. 切换到root
  2. cd ~  切换到当前角色的home空间
  3. ssh-keygen -t rsa 连续三次回车。(第一次回车:确定生成的私(公)钥的存放路径和文件名称。后两次回车用于在生成的私钥中加入自定义的混杂的数据信息。增加加密强度)。都默认即可。
  4. ls -al ~/.ssh/  id_rsa id_rsa.pub  如果存在着两个文件,则表示密钥生成成功
  5. ssh-copy-id -i ~/.ssh/id_rsa.pub xiaoming@ 192.168.0.188  回车进行确认。并输入远程主机对于角色的登录密码进行验证。
  6. ssh xiaoming@192.168.0.188 则可以进行无密码远程登录

知识拓展:

  SSH安全验证,是一种"非对称性密钥系统",即公钥私钥加密系统。公钥(public key)用于加密数据,任何人都可以拥有。私钥(private key)用于解密,只能拥有着自己拥有。公钥加密后的数据,只能用私钥才能解密。其安全验证分为两种方式

  1. 口令安全验证

    验证流程

    • 客户端向远程主机发出请求
    • 远程主机接受请求,并返回远程知己的公钥
    • 客户端确定接受远程主机返回的信息,并通过远程主机的公钥加密登录密码,同时并携带客户端自己的公钥再次发送请求
    • 远程主机接受客户端的请求,并通过私钥解密客户端通过公钥加密的登录密码,如果匹配成功。则建立的可信任的连接。并且把客户端的公钥存放到~/ssh/know_hosts中。至此,双方基于公(私)钥的加密解密进行安全通信

     上述流程中,连接的远程主机可以会被其他远程主机劫持,即实际请求的远程主机并不是真正要请求的远程主机。伪装的远程主机可以发送自己的公钥给客户端,以此欺骗客户端获取客户端的公钥信息。进行任意操作。所以在客户端在第一次接受远程主机返回的信息时。会进行一次主机"指纹密钥"验证,以确定连接的远程主机的正确性。如果确定,则会记录到客户端当前用户的~/.ssh/know_hosts文件中。接下来进行连接远程主机的密码登录验证。当客户端再次发送同一个远程主机的请求,求会把远程主机的"指纹密钥"和know_hosts中记录的进行比对。不存在,则需要用户进行远程主机身份的确认。存在,则直接让客户端输入登录远程主机的密钥进行下一步的操作

  2. 密钥安全验证

    验证过程

      在认证之前,客户端需要通过某种方法将公钥 Ac 登录到服务器上(参考上面的案例操作)。并存储在服务器当前用户的~/.ssh/authorized_keys文件中。

      认证过程分为两个步骤。

       1. 会话密 钥(session key)生成
          1. 客户端请求连接服务器,服务器将自己的公钥(Public Key)发送给客户端。
          2. 服务器生成会话SSID(session id)发送给客户端。
          3. 客户端生成会话密钥CSID(session key),并计算 r = SSID xor CSID。
          4. 客户端将r用服务端公钥(Public Key)进行加密,结果发送给服务器。
          5. 服务器用密钥(Private Key)进行解密,获得r。
          6. 服务器进行 r xor SSID 的运算,获得 CSID。
          7. 至此服务器和客户端都知道了会话密钥SCID,以后的传输都将被SSID加密。
       

       2. 认证
          1. 服务器生成随机数,并用客户端的公钥(Public Key)加密,发送给客户端
          2. 客户端使用密钥(Private Key)解密服务端加密的数据得到服务端的随机数
          3. 客户端把随机数和生成的会话密钥进行MD5进行加密和服务端进行对比(服务端同时也把自己生成的会话ID和随机数通过MD5加密),比对成功,则进行双方的通信

CenOS SSH无密码登录的更多相关文章

  1. 普通用户ssh无密码登录设置

    这段时间在做Hadoop的环境配置,用root用户只需要按照一定的步骤进行操作就可以直接实现无密码登录,但如果使用新建用户,怎么尝试都不行. 本帖大部分都是其他人帖子的内容.如果按照下面的步骤还是不能 ...

  2. CentOS下SSH无密码登录的配置

    1.确认本机sshd的配置文件(需要root权限) $ gedit /etc/ssh/sshd_config 找到以下内容,并去掉注释符"#" RSAAuthentication ...

  3. ssh-keygen+ssh-copy-id 在linux下实现ssh无密码登录访问(转)

    转自:http://blog.csdn.net/pennyliang/article/details/8556662 ssh-keygen+ssh-copy-id 在linux下实现ssh无密码登录访 ...

  4. ssh 无密码登录

    ssh 无密码登录要使用公钥与私钥.linux下可以用用ssh-keygen生成公钥/私钥对,下面我以CentOS为例. 有机器A(192.168.1.155),B(192.168.1.181).现想 ...

  5. CentOS配置ssh无密码登录

      CentOS配置ssh无密码登录的注意点   前提配置:使用root登录修改配置文件:/etc/ssh/sshd_config,将其中三行的注释去掉,如下: 然后重启ssh服务:service s ...

  6. 【转发】SSH无密码登录的配置

    免责声明:     本文转自网络文章,转载此文章仅为个人收藏,分享知识,如有侵权,请联系博主进行删除.     原文作者:http://cn.soulmachine.me/     原文地址:http ...

  7. CentOS 下SSH无密码登录的配置

    CentOS 下SSH无密码登录的配置 最近学习Hadoop.它要求各节点之间通过SSH无密码登录,配置SSH的时候费了一番功夫,记录下来,以备忘. 配置SSH无密码登录需要3步: 1.生成公钥和私钥 ...

  8. Linux实现SSH无密码登录(对目录权限的设置非常详细,可以参考一下)

    假设服务器IP地址为192.168.1.1,机器名:cluster.hpc.org 客户端IP地址为172.16.16.1,机器名:p470-2.wangrx.sioc.ac.cn 客户端用户yzha ...

  9. 使用ssh无密码登录

    使用ssh无密码登录 ssh 是一个专为远程登录会话和其他网络服务提供安全性的协议.默认状态下ssh链接是需要密码认证的,可以通过添加系统认证(即公钥-私钥)的修改,修改后系统间切换可以避免密码输入和 ...

随机推荐

  1. 事件处理器v-on:(event)/@(event)

    <!DOCTYPE html> <html lang="zh"> <head> <title></title> < ...

  2. day 46 Javascript学习

    Javascript学习   JavaScript概述 ECMAScript和JavaScript的关系 1996年11月,JavaScript的创造者--Netscape公司,决定将JavaScri ...

  3. 同一个局域网内,使用 java 从服务器共享文件夹中复制文件到本地。

    1 引用jar 包 <dependency> <groupId>org.samba.jcifs</groupId> <artifactId>jcifs& ...

  4. Unity 用代码设置UGUI的渲染层级

    用代码设置UGUI渲染无非和三个API有关: 1.SetAsFirstSibling(); 2.SetAsLastSibling(); 3.SetSiblingIndex(n) SetAsFirstS ...

  5. webpack 打包生成的index 路径引用不对

    webpack 在打包时在访问打包里面的index时,出现路径错误 修改方法为 解决方法:在config下面的index.js把 assetsPublicPath: '/', 修改为: assetsP ...

  6. 【核心核心】8.Spring【AOP】注解方式

    1.引入jar包 sprig框架基础包+JUntil整合包+日志包+AOP包 spring的传统AOP的开发的包 spring-aop-4.2.4.RELEASE.jar com.springsour ...

  7. 图解nginx配置负载均衡

    1. 在Linux上准备两份tomcat 2. 修改两份tomcat的端口号 修改的端口如图所示: 3. 启动两个tomcat服务器 4. 修改两个服务器上的主页方便测试区分 5. 在nginx配置文 ...

  8. 初识css3 3d动画效果

    (先看我博客右上角的3d盒子动画效果,目前没做兼容处理,最好最新的chrome看)无意间看到网上css3写的3d动画效果,实在炫酷,以前理解为需要js去计算去写,没想到css直接可以实现.于是开始研究 ...

  9. 如何设置td中溢出内容的隐藏显示

    <style type="text/css"> table { table-layout:fixed; } td { overflow:hidden; word-bre ...

  10. mysql视图详解

    什么是视图  视图是从一个或多个表中导出来的表,是一种虚拟存在的表. 视图就像一个窗口,通过这个窗口可以看到系统专门提供的数据. 这样,用户可以不用看到整个数据库中的数据,而之关心对自己有用的数据. ...