• 免密登录原理


    免密登录原理

    ​ 在linux中进行各个系统之间进行ssh通信时,必须知道对方的账户密码,才能进行相应的操作。通过rsa加密技术,可以实现免密登录。其通信流程如下图所示:

    ssh安装

    sudo yum install -y openssh-server
    

    集群免密登录

    • 只要服务器B有服务器A的公钥,服务器A则可免密登录服务器B。(注意服务器B本机配置了免密登录)

    • 集群任意两台机器免密登录的方法

      • 通过RSA加密算生成了密钥(包括私钥和公钥)。把公钥追加到用来认证授权的key中去,配置本地免密登录。每台机器都需要!!!
      • 将其余每台机器生成的~/.ssh/id_dsa.pub公钥内容追加到其中一台主机的authorized_keys中。
      • 将这台机器中包括每台机器公钥的authorized_keys文件发送到集群中所有的服务器。(这样集群中每台服务器都拥有所有服务器的公钥,这样集群间任意两台机器都可以实现免密登录了。)

    本机免密配置

    ​ 需要先设置本机免密登录

    cd ~
    ll -a  # 查看是否存在.ssh/
    ssh localhost # 若不存在.ssh/,则执行该语句
    
    
    cd ~/.ssh
    ssh-keygen -t rsa  # 1. 使用rsa加密方式生成密钥对; 生成的文件有id_rsa;id_rsa.pub
    cat ./id_rsa.pub >> authorized_keys  # 2. 公钥加入到authorized_keys
    ssh localhost  # 测试,免密即成功
    
    • Error:设置了authorized_keys却仍然需要密码
    # SSH不希望用户目录、~/.ssh目录、authorized_keys 对组有写权限
    chmod g-w /home/hadoop   # 如果是root,则为  /root
    chmod 700 ~/.ssh
    chmod 600 ~/.ssh/authorized_keys
    

    群组免密配置

    ​ scp 是 secure copy 的简写,用于在 Linux 下进行远程拷贝文件,类似于 cp 命令,不过 cp 只能在本机中拷贝。执行 scp 时会要求输入 Slave1 上 hadoop 用户的密码(hadoop),输入完成后会提示传输完毕,如下图所示:

    scp ~/.ssh/id_rsa.pub hadoop@Slave1:/home/hadoop/
    

    接着在 Slave1 节点上,将 ssh 公匙加入授权:

    ssh localhost  ~/.ssh       # 如果不存在该文件夹需先创建,若已存在则忽略
    cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
    rm ~/id_rsa.pub    # 用完就可以删掉了
    

    这样,在 Master 节点上就可以无密码 SSH 到各个 Slave 节点了,可在 Master 节点上执行如下命令进行检验,如下图所示:

    ssh Slave1
    

    除了上面这种方式,还可以利用scp-copy-id命令进行认证文件的拷贝操作。

  • 相关阅读:
    [LeetCode]Linked List Cycle
    ACM 整数划分(四)
    ACM 子串和
    ACM 阶乘之和
    ACM 组合数
    ACM 阶乘的0
    ACM 比大小
    ACM 擅长排列的小明
    ACM 重建二叉树
    cocos2dx 魔塔项目总结(一)
  • 原文地址:https://www.cnblogs.com/vvlj/p/13569096.html
Copyright © 2020-2023  润新知