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作用[通俗易懂]

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 抖音表白代码「建议收藏」

    最近抖音上火了一个由小伙伴自己制作的一个表白代码,很多小伙伴都在问这个表白代码是怎么写的?小编今天就为大家带来了抖音表白代码汇总!抖音表白代码示例1:msgbox(“做我女朋友好吗?”)msgbox(“房产证写你名字…保大…我妈会游泳…”)示例2:msgbox(“做我女朋友好吗?”)msgbox(“房产证写你名字…保大…我妈会游泳…”)x=msgbox(“做我女朋友…

  • mybase 试用期到期(手机ip破解版无限试用)

    myBase7是一个很好的记录笔记的工具,但它是收费的,但是,任何一个收费的东西,咱们都能给他找到破解的方法!废话不多说,请看下方步骤:firstofall:  请保持你的myBase7是关闭的1、找到myBase7的安装目录(myBase.exe的目录);2、右键编辑打开myBase.ini;3、找到App.UserLic.FirstUseOn,并在确保myBase关闭的情况下将其删除…

  • python聊天室(tkinter写界面,treading,socket实现私聊群聊查看聊天记录,mysql存储数据)

    python聊天室(tkinter写界面,treading,socket实现私聊群聊查看聊天记录,mysql存储数据)一、前言我用的是面向对象写的,把界面功能模块封装成类,然后在客户端创建对象然后进行调用。好处就是方便我们维护代码以及把相应的信息封装起来,每一个实例都是各不相同的。所有的界面按钮处理事件都在客户端,在创建界面对象是会把客户端的处理事件函数作为创建对象的参数,之后再按钮上绑定这个函数,当点击按钮时便会回调函数二、登录界面实现登录界面模块chat_login_panel.pyfromtkinterimport*#导入模块,用户创建GUI界面#登陆界面类classLoginPane

    2022年10月27日
  • 一个简单的WPF界面框架

    一个简单的WPF界面框架

  • getComputedStyle与currentStyle[通俗易懂]

    getComputedStyle与currentStyle[通俗易懂]本文参考https://developer.mozilla.org/en-US/docs/Web/API/Window.getComputedStyle1.简介  getComputedStyle是window下的一个全局函数,可以获取元素真正使用的样式。2.语法  varstyle=window.getComputedStyle(element[,ps

  • Pytest(15)pytest分布式执行用例「建议收藏」

    Pytest(15)pytest分布式执行用例「建议收藏」前言平常我们功能测试用例非常多时,比如有1千条用例,假设每个用例执行需要1分钟,如果单个测试人员执行需要1000分钟才能跑完当项目非常紧急时,会需要协调多个测试资源来把任务分成两部分,于是执行时间

发表回复

您的电子邮箱地址不会被公开。

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