zoukankan      html  css  js  c++  java
  • Linux/(centos、unix等)的ssh双向免密登录原理和实现

    原理:

    双向,顾名思义,双方互通,此处的意思是多台 linux 两两免密登录。

    双向比单向多了些操作,单向只需把某一个linux的公钥发送给其他linux即可,而双向要实现集群中的每一台机器都保存其他所有机器的公钥。

    步骤:假设你有两台机器,ip分别为A和B,

    配置分为五步,如下:

    1.非免密登录对方:  //目的是自动生成.ssh文件夹

      先执行cd这个命令到根目录下,然后执行如下命令登录:

      ssh B  //在A机器执行此命令,输入yes和B机器的用户密码登录B

      ssh A  //在B机器执行此命令,输入yes和A机器的用户密码登录A

    之后分别执行exit命令退出,一定要退出。

    2.生成公钥(以下命令在A和B机器都要执行):

      cd .ssh/

    如下命令生成公钥,默认会在~/.ssh/下生成id_rsaid_rsa.pub。先检查一下机器.ssh文件夹下是否已有公钥,如果没有再执行:

      ssh-keygen -t rsa(一直回车)    //目的是生成公钥 

    -t 指定算法
    -f 指定生成秘钥路径
    -N 指定密码

    3.拷贝公钥:

      scp id_rsa.pub root@B:~/.ssh/authorized_keys  //此命令在A机器执行,目的将公钥发送至B机器

      scp id_rsa.pub root@A:~/.ssh/authorized_keys  //此命令在B机器执行,目的将公钥发送至A机器

    若对方.ssh下没有authorized_keys文件夹,以上命令执行后会自动生成,执行ls可查看。

    4.授权:  //目的是授权authorized_keys文件免密登录权限

      chmod 600 authorized_keys 

      cd  //返回根目录

      chmod 700 .ssh

    5.验证:

      ssh B  //在A机器执行此命令,看是否能免密登录B

      ssh A  //在B机器执行此命令,看是否能免密登录A

    :如果authorized_keys文件、HOME/.sshHOME/.ssh目录或HOME目录让本用户之外的用户有写权限,那么sshd都会拒绝使用 ~/.ssh/authorized_keys 文件中的key来进行认证的。

    看懂了左手给你个栗子,给我关注点赞;看不懂右手给你个锤子,砸开脑壳看看有没有带脑子。

    -----------------------------------------------------转载需备注博主名和原创网址!!!------------------------------------------------------
  • 相关阅读:
    eclipse + maven 环境配置
    腾讯管家去除桌面快捷小图标
    C# 在同一个项目里启动不同的类文件
    面试题-数据库篇
    面试题-编程篇
    DevExpress控件-GridControl根据条件改变单元格(Dev GridControl 单元格着色)
    Developer Express控件gridcontrol中gridView的某一个单元格是否可以自由输入
    oracle11g如何创建数据库
    通过第三方组件NPOI读取Excel的方法
    Oracle11g常用的命令
  • 原文地址:https://www.cnblogs.com/Luoters/p/11862697.html
Copyright © 2011-2022 走看看