zoukankan      html  css  js  c++  java
  • linux 远程ssh免密登录

    写在前面

    先说说需求:

    我们平时开发、运维操作linux过程中经常需要实现将远程文件拷贝到本地或者本地文件拷贝到远程;执行远程命令等操作;这个时候建立ssh免密登录应该是一个比较好的选择;

    原理

    在linux系统中,ssh是远程登录的默认工具,因为该工具的协议使用了RSA/DSA的非对称加密算法;非对称加密算法会分别产生公钥和私钥;

    现在有两台机器:ServerA和ServerB,ServerA需要免密登录ServerB,我们先在ServerA生成公钥和私钥,把公钥拷贝到ServerB指定的文件下,ServerA就可以免密登录ServerB了;

    以下方法一和方法二都是使用依据上面的原理实现;

    方法一:使用ssh-copy-id 命令拷贝密钥:

    1、ServerA执行ssh-keygen生成公私钥;

    ssh-keygen
    

    公私钥 默认生成路径/root/.ssh(这里的root是用户名,如果你是其他用户替换即可)

    如图:这里会让你输入密钥的保护密码,我这里是一路回车(也就是不设置密钥密码)

    1547276774262

    生成的/root/.ssh的文件:

    1547276894955

    2、使用ssh-copy-id将公钥复制到ServerB中

    ssh-copy-id -i id_rsa.pub文件 ServerB用户名@ServerB_Ip
    #示例
    ssh-copy-id -i /root/.ssh/id_rsa.pub root@139.199.196.67
    

    这个过程需要输入ServerB对应用户密码。下图添加成功。

    1547277535362

    ok,搞定。

    3、测试

    ServerA执行:

    ssh root@ServerB_Ip date
    #示例
    ssh root@139.199.196.67 date
    
    得到:
    Sat Jan 12 15:22:17 CST 2019
    
    成功!
    

    方法二:手工拷贝密钥

    其实手工拷贝跟方法一的使用命令拷贝差不多,就是操作上原始一点;

    1、生成公私钥:同方法一的步骤1;

    2、手动将步骤1中ServerA生成的/root/.ssh/id_rsa.pub 拷贝到ServerB的/root/.ssh目录下并重命名authorized_keys

    3、测试:同方法一的步骤3;

  • 相关阅读:
    泛型约束where条件的使用(可以通过类型参数动态反射创建实例)
    设计模式之java源码-工厂方法模式
    软件定义网络基础---OF-Config协议
    软件定义网络基础---OpenFlow协议
    软件定义网络基础---南向接口协议概述
    软件定义网络基础---OpenFlow流表
    软件定义网络基础---OpenFlow概述
    软件定义网络基础---SDN数据平面
    软件定义网络基础---SDN的核心思想
    MACVLAN虚拟网卡技术
  • 原文地址:https://www.cnblogs.com/xiaxiaolu/p/10264013.html
Copyright © 2011-2022 走看看