实战证明LINUX系统下密钥对验证的安全性
实战证明LINUX系统下密钥对验证的安全性
密钥对验证:要求提供匹配的密钥信息才能通过验证,首先在客户端创建一对密钥文件(公钥、私钥),后把公钥文件放到需要远程连接的服务器中。远程登录时,系统将使用私钥加密身份信息提交给远程主机,远程主机使用对方提交的公钥来解密进行身份验证。
本次实验通过三部分来完成:
1、构建密钥对
2、验证私钥的可靠性
3、验证公钥的可靠性
一、构建密钥对验证SSH体系:
(1)首先在PC1上创建密钥对(私钥文件:id_rsa 公钥文件:id_rsa.pub)
(2)将公钥文件上传至需要远程连接的服务器
(3)使用密钥对验证
1、创建密钥对:ssh-keygen -t rsa 在创建的过程中不设置短语(就是用来加密私钥的密码,因为如果脚本中需要远程登录到另一台服务器时,如果有短语会等待管理员输入短语,导致脚本执行暂停)。
2、拷贝公钥到另一台linux主机(PC2):ssh-copy-id root@192.168.80.100
查看 .ssh目录下是否成功创建密钥对,然后把公钥拷贝到对方主机
[root@xs ~]# ls .ssh
id_rsa id_rsa.pub
3、远程登陆: ssh root@192.168.80.100
通过上面截图可以看到登陆192.168.80.100并不需要输入密码验证就可以直接连接。因为PC1使用刚才产生的私钥加密了数据,对方收到后使用公钥解密可以解开,身份验证成功。思考一个问题:如果此时PC2远程连接PC1,是需要输入密码还是不需要直接连接成功呢?
二、验证私钥丢失后的安全性
如果私钥丢失,那么得到私钥的用户能否远程连接到 PC2(私钥在产生的时候并没有设置短语加密)
1、把私钥拷贝到另外一台 linux主机(PC3)root中,再把私钥从PC3root中拷贝到普通用户(yus)的目录中,验证root和yus能否远程连接PC2
(1)、cd到 .ssh目录并把id_rsa(私钥)拷贝到PC3中
(2)、在PC3上查看是否拷贝成功,并把id_rsa文件复制到.ssh目录中(如果没有.ssh目录要用mkdir新建一个.ssh目录)
(3)连接PC2:ssh root@192.168.80.100
通过截图可以看到已经成功连接到PC2并且不需要密码验证
验证普通用户能否远程连接
1、赋予yus对id_rsa文件的可执行权限
2、并把id_rsa文件复制到yus用户中的.ssh目录下
[root@ys .ssh]# cp -p id_rsa /home/yus/
[root@ys .ssh]# su - yus
[yus@ys ~]$ mkdir /home/yus/.ssh
3、登陆到PC2:ssh root@192.168.80.100
由以上结论可以得出私钥丢失后,任何得到私钥的都可以登陆到PC2服务器。
三、验证公钥丢失后的可靠性
1、把PC2上的公钥拷贝到PC3上
2、在PC3上把公钥文件复制到.ssh目录中,记得把之前的私钥文件删除
3、使用PC1验证能否远程登陆PC3
通过上面截图可得出结果,公钥丢失后或被窃取后,产生密钥对的服务器就可远程登陆到有公钥的设备上。也就是说哪台设备上有公钥,服务器就能远程连接,而且公钥不论是从服务器上获得的还是从别的设备上窃取的都可使用。所有无论是公钥还是私钥都需要妥善保管。
总结:SSH远程管理通过密钥对验证是通过公钥和私钥互相加密解密完成验证的。通过本次实验可以看出,公钥和私钥都不可丢失,否则就会造成安全问题。同时相对于密码验证来说,密钥对验证要依然要安全许多。在合适的场景下合作恰当的验证方式就好。绝对的安全是不存在的。
转载于:https://blog.51cto.com/yuan2/1948260
相关文章:
【怎样写代码】偷窥高手 -- 反射技术(四):深入窥视属性
如果喜欢这里的内容,你能够给我最大的帮助就是转发,告诉你的朋友,鼓励他们一起来学习。 If you like the content here, you can give me the greatest help is forwarding, tell your friends, encourage them to learn together.

百度android 测试平台,集成百度活体检测(Android、iOS)
更新记录1.1.0(2020-06-18)插件增加iOS版本1.0.2(2020-06-08)优化插件打包无法使用的问题插件调用方法添加sound字段,表示是否开启声音,true为开启,默认false查看更多平台兼容性AndroidiOS适用版本区间:4.4 - 9.0 支持CPU类型&…

ubuntukylin-14.04.2-desktop-amd64中python2.7版本安装机器学习库
为什么80%的码农都做不了架构师?>>> 本文永久地址:https://my.oschina.net/bysu/blog/1456737 1.如果需要设置代理才能上网,那么先设置代理。 摘自:http://www.cnblogs.com/foonsun/p/5781767.html ubuntu 全局代理&a…
【怎样写代码】偷窥高手 -- 反射技术(五):深入窥视方法
如果喜欢这里的内容,你能够给我最大的帮助就是转发,告诉你的朋友,鼓励他们一起来学习。 If you like the content here, you can give me the greatest help is forwarding, tell your friends, encourage them to learn together.

android 系统锁屏音乐播放器,Android实现音乐播放器锁屏页
本文实例为大家分享了Android音乐播放器锁屏页的具体代码,供大家参考,具体内容如下首页我们先看一下效果图下边来说一下实现逻辑,其主要思路就是新建一个activity使其覆盖在锁屏页上边。一、我们新建一个LockActivty,既然是四大组…

GridView标题行换行之我见 (转)
GridView标题行换行之我见 (转) 1、不换行:word-break:keep-all;word-wrap:normal2、换行:word-break:break-all;word-wrap:break-word以上的换行只支持英文,当标题中包含有中文时并不好用。3、如果标题中含有中文的,只能在GridVi…
【怎样写代码】偷窥高手 -- 反射技术(六):深入窥视DLL内部
如果喜欢这里的内容,你能够给我最大的帮助就是转发,告诉你的朋友,鼓励他们一起来学习。 If you like the content here, you can give me the greatest help is forwarding, tell your friends, encourage them to learn together.
GIS+=地理信息+云计算技术——Spark集群部署
第一步:安装软件 Spark 1.5.4:wget http://www.apache.org/dyn/closer.lua/spark/spark-1.5.2/spark-1.5.2-bin-hadoop2.6.tgzHadoop 2.6.3:wget http://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-2.6.3/hadoop-2.6.3.tar.gzscala :apt-get inst…

android上传图片崩溃,导致安卓手机死机的照片拍摄者表示这张照片是无意之举...
原标题:导致安卓手机死机的照片拍摄者表示这张照片是无意之举上周,我们报道了在一些安卓手机上将某张图片设置为壁纸会导致手机崩溃,并卡在一个开启和关闭显示屏的循环中,让用户无法进行锁屏。它影响了大多数Android手机ÿ…

判断页面元素存在与否
在传统的Javascript里,当我们对某个页面元素进行某种操作前,最好先判断这个元素是否存在。原因是对一个不存在的元素进行操作是不允许的。例如:document.getElementById("someID").innerText("hi");如果ID为"someID…

Java系列 – 用Java8新特性进行Java开发太爽了(续)
本人博客文章网址:https://www.peretang.com/using-java8s-new-features-to-coding-is-awesome-2/前言上周, 我们谈论了关于Java8的新特性有那些, 什么是函数式编程, 什么是Lambda表达式, 这周让我们继续谈论这些新特性.本周, 我们会聊一下什么是Stream API, 以及什么是Optiona…
【怎样写代码】偷窥高手 -- 反射技术(七):通过反射实例化对象
如果喜欢这里的内容,你能够给我最大的帮助就是转发,告诉你的朋友,鼓励他们一起来学习。 If you like the content here, you can give me the greatest help is forwarding, tell your friends, encourage them to learn together.

腾讯全力支持鸿蒙,腾讯宣布大力发展车联网,或与华为鸿蒙强强联合!
原标题:腾讯宣布大力发展车联网,或与华为鸿蒙强强联合!一场全球级别的科技风暴已然拉开序幕,互联网、通讯系统、云计算、智能家居、汽车……万物即将联为一体。按理来说这是互联网巨头大展拳脚的好机会,但身为国内互联…

CreateFileMapping
CreateFileMapping VB声明 Declare Function CreateFileMapping Lib "kernel32" Alias "CreateFileMappingA" (ByVal hFile As Long, lpFileMappigAttributes As SECURITY_ATTRIBUTES, ByVal flProtect As Long, ByVal dwMaximumSizeHigh As Long, ByVal…

java file 操作之创建、删除文件及文件夹
本文章向大家讲解java文件的基本操作,包括java创建文件和文件夹、java删除文件、java获取指定目录的全部文件、java判断指定路径是否为目录以及java搜索指定目录的全部内容等。请看下面实例。 创建文件File 的两个常量(File.separator、File.pathSeparat…
【怎样写代码】小技巧 -- .NET配置文件详解
如果喜欢这里的内容,你能够给我最大的帮助就是转发,告诉你的朋友,鼓励他们一起来学习。 If you like the content here, you can give me the greatest help is forwarding, tell your friends, encourage them to learn together.
html树状结构怎么展开,纯css实现树形结构
纯css实现属性结构**css实现属性结构的思路是利用伪类实现树形结构连接线,如果想实现点击展开和收缩以及复选框效果还得配合js来实现。其实展开和收缩就是一个点击元素其子元素隐藏和显示的切换。**效果图html结构1级菜单2级菜单2级菜单3级菜单3级菜单1级菜单2级菜单…

.net获取ip地址
/// 获得客户端IP /// /// <returns></returns> private string getIp() { // 穿过代理服务器取远程用户真实IP地址 string Ip string.Empty; if (Request.ServerVariables["HTTP_VIA"] ! null) { …

Pascal 错误代码及含义
DOS 错误代码:1无效DoS功能号 2文件末找到 3路径未找到 4打开文件过多 5禁止文件存取 6无效文件句柄 12无效文件存取代码 15无效驱动器号 16不能删除当前日录 17不能跨驱动器改文件名 I/O错误 100磁盘读错误 101磁盘写错误 102文件变量未赋值 103文件未打开 104文件…
【怎样写代码】工厂三兄弟之工厂方法模式(一):问题案例
如果喜欢这里的内容,你能够给我最大的帮助就是转发,告诉你的朋友,鼓励他们一起来学习。 If you like the content here, you can give me the greatest help is forwarding, tell your friends, encourage them to learn together.

html5展示json数据库,显示数据在html5从数据库使用javascript和json
我想从MySQL数据库显示在html中的列表。要从MySQL获取数据我使用json和javascript。但它什么也没有显示!显示数据在html5从数据库使用javascript和json我的HTML页面BackMy Lease当我从浏览器ID叫我的PHP文件is.It工作正常。session_start();include connection.php;…

Python学习笔记二:布尔表达式
1 #coding:utf-82 #布尔表达式的值只有两个,True和False3 x 12.44 y 12.35 printxy #符号用于判断两个数是否相等,这条语句的resultFalse6 x12.37 printx y #这条语句的result True8 printx !y #符号!用于判断两个数是否不相等,这条语句的re…
【怎样写代码】工厂三兄弟之工厂方法模式(二):解决方案 I
如果喜欢这里的内容,你能够给我最大的帮助就是转发,告诉你的朋友,鼓励他们一起来学习。 If you like the content here, you can give me the greatest help is forwarding, tell your friends, encourage them to learn together.

html中怎么隐藏复选框,隐藏复选框字段HTML
替代他们,我改变了你的标记,使用形式。 JavaScript是没有必要的(除非你需要支持IE8以上的浏览器)每一个复选框包括它的标签,它是透明的:所以当你点击你实际点击复选框的颜色。所选颜色的不同样式通过:checked伪类应用。标记GrayRe…

新公司研发能力低下,何去何从?
我是去年年底辞职的,到了现在的新公司,和我一起进公司的还有个09年毕业的研究生。到了公司不多久,我们就参加到了一个项目研发中,在研发的过程中,我们都发现公司的代码简直就是垃圾:一:代码的命…

Parentheses Balance (括号平衡)---栈
题目链接:https://vjudge.net/contest/171027#problem/E Yes的输出条件: 1. 空字符串 2.形如()[]; 3.形如([])或者[()] 分析: 1.设置一个变量flag,初始值为1 (注意初始化的位置); 2.括号的左半边…
【怎样写代码】工厂三兄弟之工厂方法模式(三):解决方案 II
如果喜欢这里的内容,你能够给我最大的帮助就是转发,告诉你的朋友,鼓励他们一起来学习。 If you like the content here, you can give me the greatest help is forwarding, tell your friends, encourage them to learn together.

学以致提高学生操作计算机能力,【学以致用】提供学习平台,提升学生实际应用能力...
原标题:【学以致用】提供学习平台,提升学生实际应用能力我校教学服务部多年来一直承担学校电教设备的管理与维修任务,保障了全校教育教学及其他工作的顺利进行;同时,也成为学生学习实践的一个大平台。近日,…

兼容Silverlight4的实用的Silverlight可拖放工具类源代码
开发日常的Silverlight应用程序时,常常要对一个域多个控件实现可拖放的MOUSE操作,在Silverlight中实现拖放的功能其实非常简单,但是为了提高程序功能代码的可复用性,程序员常常喜欢把常用的代码封装成一个工具类,例如A…

统计s=hello alex alex hello haiyan cc haiyan com中每个单词的个数
这个题可以有好几种解题方法。 一、索引值获取 s"hello alex alex hello haiyan cc haiyan com" ls.split() dic{} for item in l:if item in dic:dic[item]1else :dic[item]1 print(dic) 二、count方法 s"hello alex alex hello haiyan cc haiyan com"…