zoukankan      html  css  js  c++  java
  • SSH建立密钥对

     A服务器登录到B服务器,但为了安全起见,不想输入B服务器的用户帐号密码,该如何实现?

    可以使用密钥对验证,实现在A服务器无需B服务器的用户帐号密码即可登录到B服务器。

    登录验证对象:服务器中的本地用户帐号

    登录验证方式:

      密码验证:核对用户名、密码是否匹配

      密钥对验证:核对客户的私钥、服务端公钥是否匹配

    # vim /etc/ssh/sshd_config

    PasswordAuthentication yes   // 密码验证

    PubkeyAuthentication yes   //密钥对验证

    AuthorizedKeysFile .ssh/authorized_keys  // 密钥保存地方

    # systemctl restart ssh.service

    构建密钥对验证的SSH体系:

    第一步:创建密钥对(在客户端创建,创建后包含私钥和公钥,形成一个密钥对)

      私钥文件:id_rsa

      公钥文件:id_rsa.pub

    # ssh-keygen -t rsa

    // 设置密钥保存位置

    // 设置密钥口令

    【私钥权限为:600

    公钥权限为:644

    此加密方式为非对称加密,私钥文件一定不能公开】

    第二步:上传公钥文件到服务端

    第三步:导入公钥文件

    以下命令把第二步和第三步合成一起实现上传并导入:

    # ssh-copy-id remote_user_name@remote_ip_address

    例子:

    导入公钥文件前,使用guest用户切换到student用户:
    [root@localhost ~]# ssh user001@192.168.10.11
    student@192.168.10.11's password:

    开始上传并导入公钥文件:

        使用guest用户上传并导入公钥文件到student用户,上传并导入成功后,使用guest用户切换到student用户,无需student的密码即可登录到student(如果guest用户创建密钥对时候创建了密码,则需输入密钥口令):

    [root@localhost ~]# ssh-copy-id student@192.168.10.11

    // 输入student的密码

    // 上传并导入成功,在student用户的 ~/.ssh 目录下有一个文件 authorized_keys ,即上传并导入后的公钥文件

    // 使用guest用户切换到user001,无需user001的密码即可登录

    [root@localhost ~]# ssh student@192.168.19.11
    Enter passphrase for key '/home/guest/.ssh/id_rsa':

  • 相关阅读:
    Windows程序调试系列: 使用VC++生成调试信息 转
    mysql基础
    mysql bug
    VS2010下配置Winpcap 开发环境
    WIN7 下面 装XP
    Iptables 指南 1.1.19
    mysql内核 innodb存储引警(卷1)配书 用VS 2003 编绎 mysql-3.23.49 源代码
    cmake
    Windows+VS2012环境下编译调试MySQL源码 转
    哈佛图书馆自习室墙上的训言 (自勉)
  • 原文地址:https://www.cnblogs.com/wanghs8/p/11366345.html
Copyright © 2011-2022 走看看