zoukankan      html  css  js  c++  java
  • Ubuntu ssh免密登录

    ssh免密登录工作原理
    server A免登录到server B: 
    1.在A上生成公钥私钥。 
    2.将公钥拷贝给server B,要重命名成authorized_keys(从英文名就知道含义了) 
    3.Server A向Server B发送一个连接请求。 
    4.Server B得到Server A的信息后,在authorized_keys中查找,如果有相应的用户名和IP,则随机生成一个字符串,并用Server A的公钥加密,发送给Server A。 
    5.Server A得到Server B发来的消息后,使用私钥进行解密,然后将解密后的字符串发送给Server B。Server B进行和生成的对比,如果一致,则允许免登录。 
    总之:A要免密码登录到B,B首先要拥有A的公钥,然后B要做一次加密验证。对于非对称加密,公钥加密的密文不能公钥解开,只能私钥解开。
    注意:上述只能实现单向免密登录
     
    接下来配置相互免密登录:
    其关键点在,收集所有主机的公钥将其共享到master的authorized_keys文件中,然后再用scp复制到各个主机的.ssh文件夹下
     
     

    0、给所有没安装ssh的主机安装ssh

       sudo apt-get install ssh
       sudo apt-get install rsync
    
    
    1、修改master的配置文件  gedit /etc/hosts
    给每个需要互联的机器设置IP地址 和 名称(每台机中自行修改)
    如127.0.0.1 localhost
    192.168.137.129 master
    192.168.137.130 slave1
    192.168.137.131 slave2
    2、给每个主机生成公钥和秘钥
      ssh-keygen –t rsa   -->直接回车生成的密钥对:id_rsa和id_rsa.pub,
      默认存储在"/home/hadoop/.ssh"目录下。

      先设置第六步

    3、
    master 先将自身的公钥加到key中去,之后将所有slave机上的公钥发给master机
      master中:	cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
      slave1中:	scp ~/.ssh/id_rsa.pub root@master:~/id_rsa.pub 
      先发slave1,执行第4步后,再发slave2
    
    
    4、把slave追加到授权的key里面去。

       master 中: cat ~/id_rsa.pub >> ~/.ssh/authorized_keys 

      rm ~/id_rsa.pub  %删掉已经合并的公钥。

      有别的机子再执行第三步

     

    5、修改master中key的权限

         chmod 600 ~/.ssh/authorized_keys

     

    6、修改每台机子的配置文件 gedit /etc/ssh/sshd_config

    将图片中提示的那三行上面的permitRootLogin 改成 yes 这样就可以连接远程的root用户(在需要连的那台机子上 改)

    Ubuntu ssh免密登录 - LazyJoJo - LazyJoJo的博客

        service sshd restart -->重启ssh服务

    7、将key传到每个slave机中

      master: scp ~/.ssh/authorized_keys root@slave1:~/.ssh/authorized_keys

      (scp ~/.ssh/authorized_keys  远程用户名@主机名或IP:      %scp用法)

      重复直到所有机子的key都一样

      给每个机子的.ssh 文件夹权限 :chmod 700 ~/.ssh

    8、测试连接

      ssh slave1 -->连接用户

       exit   -->退出连接用户

     

  • 相关阅读:
    eclipse自动切换到debug视图
    Android Studio 1.1.0 “关联源码” 或者“导入源码” ,又或者插件包
    Eclipse中如何安装和使用GrepCode插件 (转)
    转【Python】同时向控制台和文件输出日志logging
    AngularJs学习
    MongoDB聚合运算之mapReduce函数的使用(11)
    MongoDB聚合运算之group和aggregate聚集框架简单聚合(10)
    MongoDB的分片(9)
    MongoDB replication set副本集(主从复制)(8)(转)
    MongoDB的导入导出(7)
  • 原文地址:https://www.cnblogs.com/LazyJoJo/p/6413640.html
Copyright © 2011-2022 走看看