zoukankan      html  css  js  c++  java
  • SSH服务登陆验证

    ssh服务登陆验证有两种方式:

      1.基于用户名和密码

      2.基于密钥

    基于用户名和密码验证过程:

      1)客户端想ssh服务器发起请求,服务器会把自己的公钥发送给客户端,

      2)客户端用服务器的公钥加密自己的密码,并发送给服务器

      3)服务器用自己的私钥解密得到客户端的密码并验证,如果密码正确则登陆成功.

    基于秘钥验证过程:

      1)客户端生成一对秘钥

      2)客户端把自己的公钥传送给服务器

      3)客户端发送一个连接请求,信息包括ip和用户名

      4)服务器去authorized_keys文件中查找相应记录,如果有,就生成一个随机字符串

      5)服务器使用客户端的公钥把随机字符串加密后发送给客户端

      6)客户端使用私钥解密,再把得到的字符串发给服务器

      7)服务器对比此字符串是否与自己生成的字符串一致,如果一致就允许登陆

    基于秘钥认证示例:

    两台主机之间:

      1)客户端生成一对秘钥

      命令格式

      ssh-keygen -t rsa [-P ''] [-f "~/.ssh/id_rsa"]

        -p 口令,可为空

        -f 指定秘钥存放路径

      也可以所有参数省略直接执行ssh-keygen

      ]# ssh-keygen

    clip_image001

      执行后三次回车.会生成未加密的私钥/root/.ssh/id_rsa和公钥/root/.ssh/id_rsa.pub

      2)把公钥文件传输至远程服务器对应用户的家目录,如果写错成私钥文件名,不用担心,传过去的依然是公钥.

      命令格式

        ssh-copy-id [-i [identity_file]] [user@]host

    ]# ssh-copy-id -i .ssh/id_rsa.pub root@172.18.7.77
    root@172.18.7.77's password: 
    Now try logging into the machine, with "ssh 'root@172.18.7.77'", and check in:
    .ssh/authorized_keys
    to make sure we haven't added extra keys that you weren't expecting.
    

    3)在服务器端查看/root/.ssh/

    ]# cat /root/.ssh/authorized_keys 
    ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAusWy2QOYUC5kuwG+lNO7mWqWO/lvyqhAB1jiEcpAlns//kxVkifRtfDrA0+u7Pi+/eenW/6g1ZA6iP1muyprNXa+F84QjAaIBVlJuizKzF1iVFDOULdbyVRkKxx5Z8rlmG8WPeDl/1q9yIRrjUD84am8FOHsT/tzFLbEoeKL8vd/F6V1FPqlI+DLO28LgQ/b1Q21lJRk/XB6YvmFain9qwlzB0VF4vKVAhwVRmzA6hCxS7zohIJe8Y+1pC654mKwERtaM6PBUYPr/l0iznfU5Dxsvr4d8hp9xe2tDkyi7xkS0wd0DOE7SGbgwqUKxh7iuA+qBdln2h8dtC0dqGPlaw== root@centos6.qt
    

    说明已经传输成功

    4)测试

      在客户端直接执行

    ]# ssh 172.18.7.77
    Last login: Thu Jan 4 21:45:22 2018 from 172.18.7.61
    

      即可免密码直接登陆,不输用户名默认以当前登陆用户身份尝试登陆.

      使用Xshell或SecureCRT之类的客户端软件实现基于秘钥登陆的原理与上文相同,只要通过客户端软件生成一个公钥,并复制到服务器中,将公钥内容追加到 ~/.ssh/authorized_keys中

      之后新建一个以秘钥方式登陆的会话,则可以免密码直接登陆.

  • 相关阅读:
    Truck History(poj 1789)
    Highways poj 2485
    117. Populating Next Right Pointers in Each Node II
    116. Populating Next Right Pointers in Each Node
    115. Distinct Subsequences
    114. Flatten Binary Tree to Linked List
    113. Path Sum II
    109. Convert Sorted List to Binary Search Tree
    106. Construct Binary Tree from Inorder and Postorder Traversal
    105. Construct Binary Tree from Preorder and Inorder Traversal
  • 原文地址:https://www.cnblogs.com/Q--T/p/8251955.html
Copyright © 2011-2022 走看看