zoukankan      html  css  js  c++  java
  • SSH下authorized_keys, id_rsa, id_rsa.pub, known_hosts作用

    一、known_hsots

    ssh会把你每个你访问过计算机的公钥(public key)都记录在~/.ssh/known_hosts。当下次访问相同计算机时,OpenSSH会核对公钥。如果公钥不同,OpenSSH会发出警告, 避免你受到DNS Hijack之类的攻击。我在上面列出的情况,就是这种情况。

    原因:一台主机上有多个Linux系统,会经常切换,那么这些系统使用同一ip,登录过一次后就会把ssh信息记录在本地的~/.ssh/known_hsots文件中,切换该系统后再用ssh访问这台主机就会出现冲突警告,需要手动删除修改known_hsots里面的内容。

    有以下两个解决方案:

    1. 手动删除修改known_hsots里面的内容;

    2. 修改配置文件“~/.ssh/config”,加上这两行,重启服务器。

    StrictHostKeyChecking no
    UserKnownHostsFile /dev/null
    

    优缺点:

    1. 需要每次手动删除文件内容,一些自动化脚本的无法运行(在SSH登陆时失败),但是安全性高;

    2. SSH登陆时会忽略known_hsots的访问,但是安全性低;

    二、authorized_keys

    1、就是为了让两个linux机器之间使用ssh不需要用户名和密码。采用了数字签名RSA或者DSA来完成这个操作

    2、模型分析

    假设 A (192.168.20.59)为客户机器,B(192.168.20.60)为目标机;

    要达到的目的:

    A机器ssh登录B机器无需输入密码;

    加密方式选 rsa|dsa均可以,默认dsa

    (1)单向登陆的操作过程(能满足上边的目的):

    1、登录A机器

    2、ssh-keygen -t [rsa|dsa],将会生成密钥文件和私钥文件 id_rsa,id_rsa.pub或id_dsa,id_dsa.pub

    3、将 .pub 文件复制到B机器的 .ssh 目录, 并 cat id_dsa.pub >> ~/.ssh/authorized_keys

    4、大功告成,从A机器登录B机器的目标账户,不再需要密码了;(直接运行 #ssh 192.168.20.60 )

    (2)双向登陆的操作过程:

    1、ssh-keygen做密码验证可以使在向对方机器上ssh ,scp不用使用密码.具体方法如下:

    2、两个节点都执行操作:

    #ssh-keygen -t rsa
    

    然后全部回车,采用默认值.

    3、这样生成了一对密钥,存放在用户目录的~/.ssh下。

    将公钥考到对方机器的用户目录下,并将其复制到~/.ssh/authorized_keys中(操作命令:#cat id_dsa.pub >> ~/.ssh/authorized_keys)。

    三、id_rsa、id_rsa.pub

    上班的第一天,上司大哥都会说:待会给我发个公钥吧。

    这里说的公钥其实就是id_rsa.pub。

    上司大哥是要把我们的客户端公钥上传到服务器,然后再把这个客户端公钥添加到authorized_keys。添加后,服务器就会认为你这个客户端为可信任。你则可以访问这个服务器了。

    获取id_rsa.pub

    终端输入

    ssh-keygen
    

    一路回车,最后会看到一个矩形的图案。

    你这时ls是看不到.ssh文件夹的。

    cd .ssh/
    

    这样就会切换到.ssh,再ls

    就会看到id_rsa 和id_rsa.pub

    open ./
    

    就会打开这个文件夹了。

    现在你可以发id_rsa.pub给你的上司大哥了。

  • 相关阅读:
    关于*和&的数组操作运算对比(一维数组)
    GCC内联汇编
    输出10进制、16进制
    异常退出时的出栈
    字典
    List简单增删改查
    数组的增删改查
    Excel的简单导入导出
    文件流
    Lambda 的简单入门
  • 原文地址:https://www.cnblogs.com/lxwphp/p/15452829.html
Copyright © 2011-2022 走看看