SSH下authorized_keys, id_rsa, id_rsa.pub, known_hosts作用[通俗易懂]

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给你的上司大哥了。

SSH下authorized_keys, id_rsa, id_rsa.pub, known_hosts作用[通俗易懂]

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/111795.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 微型计算机硬件系统的性能主要取决6,微机计算机硬件系统的性能主要取决于…

    微型计算机硬件系统的性能主要取决6,微机计算机硬件系统的性能主要取决于…大家好,我是时间财富网智能客服时间君,上述问题将由我为大家进行解答。微机计算机硬件系统的性能主要取决于微处理器。微处理器能完成取指令、执行指令,以及与外界存储器和逻辑部件交换信息等操作,是微型计算机的运算控制部分。微处理器由一片或少数几片大规模集成电路组成的中央处理器。这些电路执行控制部件和算术逻辑部件的功能。微处理器与传统的中央处理器相比,具有体积小、重量轻和容易模块化等优点。微处理器的基本组成…

    2022年6月28日
    27
  • 计算机应用应届求职简历,计算机应用应届生个人简历模板

    计算机应用应届求职简历,计算机应用应届生个人简历模板计算机应用应届生个人简历模板计算机应用应届生个人简历模板一基本信息姓名:×××性别:男政治面貌:团员学历:中专毕业院校:江苏省盐城市职业技术学院专业:计算机应用技术出生日期:19xx.04.04电话:籍贯:江苏省射阳县海河镇复兴村邮箱:xxxxx工作年限:2.7工作職稱:助理领班教育经历20xx/09—20xx/07就读于江苏省盐城市职业技术学院主修课程计算机应用专业工作内容与专长1.负…

    2022年5月11日
    39
  • 第三版信息系统项目管理师47个过程的输入输出及工具「建议收藏」

    第三版信息系统项目管理师47个过程的输入输出及工具「建议收藏」第三版信息系统项目管理师47个过程的输入输出及工具

    2022年5月2日
    50
  • 多个checkbox复选框触发点击事件

    多个checkbox复选框触发点击事件多个checkbox复选框触发点击事件

    2022年4月23日
    143
  • Linux Vi 文本编辑器常用命令

    Linux Vi 文本编辑器常用命令*LinuxVi文本编辑器常用命令**引言:在Linux中我们常用的文本编辑器有Vi,Vim(Vi的增强版)。而且vi编辑器不仅仅是适用于Linux,它是所有Unix以及Linux系统下的标准编辑器,几乎适用于Unix、Linux系统的所有版本。vi或vim虽然没有Windows操作系统中的图形界面编辑器那样点鼠标的简单操作,但vi编辑器在系统管理、服务器管理字符界面中,永远不是图形界面的编辑器能比的。它能轻易地创建和修改文本文件,维护Linux系统中的配置文件。其实刚开始的时候我也觉得很不习…

    2022年7月26日
    5
  • vue3 axios跨域_vueaxios跨域请求

    vue3 axios跨域_vueaxios跨域请求//vue.config.jsconstpath=require(“path”);constwebpack=require(“webpack”);module.exports={//项目部署的基本路径//默认假设你的应用将会部署在域名的根部//比如,https://www.vue-cli.com///如果你的应用是部署在一个子路径下,那么你需要在这里指定子路径,比如,如果你部署在https://www.my-vue.com/my-ap.

    2025年10月25日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号