• 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、登录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 )

    双向登陆的操作过程:

    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
    1
    一路回车,最后会看到一个矩形的图案。
    你这时ls是看不到.ssh文件夹的。

    cd .ssh/
    1
    这样就会切换到.ssh,再ls
    就会看到id_rsa 和id_rsa.pub

    open ./
    1
    就会打开这个文件夹了。
    现在你可以发id_rsa.pub给你的上司大哥了。
    ---------------------
    作者:随波足流
    来源:CSDN
    原文:https://blog.csdn.net/chenaini119/article/details/79391041
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    jekins安装
    Nginx启动、关闭命令
    win10启动docker desktop报错
    CSS设置背景图片
    Lucene 8.5.2核心API
    Lucene 8.5.2演示API
    html+css实现选项卡效果
    搞懂JavaScript全局变量与局部变量,看这篇文章就够了
    你不知道的CSS妙用,纯CSS实现炫酷照片墙
    JS中!function(){}()的理解
  • 原文地址:https://www.cnblogs.com/williamjie/p/10684333.html
Copyright © 2020-2023  润新知