ssh-keygen和openssl的区别和基本用法
目录
- OpenSSL
- OpenSSL
- 非对称加密
- OpenSSH的ssh-keygen
- ssh
- 区别
- SSL和TLS
- SSL加密知名协议
- 协议结构
OpenSSL
- OpenSSL是用于应用程序的软件库,该应用程序可保护计算机网络上的通信免遭窃听或需要识别另一方的身份,是SSL和TLS协议的开源实现。
- 采用C语言作为开发语言,具备了跨平台的能力,支持Unix/Linux、Windows、Mac OS等多种平台。
- OpenSSL整个软件包大概可以分成三个主要的功能部分:1.密码算法库2.SSL协议库3.应用程序
- 密码算法库是一个强大完整的密码算法库,它是OpenSSL的基础部分,也是很值得一般密码安全技术人员研究的部分,它实现了目前大部分主流的密码算法和标准。主要包括对称算法、非对称算法、散列算法、数字签名和认证、X509数字证书标准、PKCS12、PKCS7等标准。其他两个功能部分SSL协议和应用程序都是基于这个库开发的。
- SSL协议部分完全实现和封装了SSL协议的三个版本和TLS协议。
- 应用程序覆盖了密码技术的应用,主要包括了各种算法的加密程序和各种类型密钥的产生程序(如RSA、Md5、Enc等等)、证书签发和验证程序(如Ca、X509、Crl等)、SSL连接测试程序(如S_client和S_server等)以及其它的标准应用程序(如Pkcs12和Smime等)。
OpenSSL
OpenSSL 是一个开源项目,其组成主要包括一下三个组件:
openssl:多用途的命令行工具
libcrypto:加密算法库
libssl:加密模块应用库,实现了ssl及tls
openssl可以实现秘钥证书管理、对称加密和非对称加密 。
非对称加密
- 先使用 genrsa 标准命令生成私钥;
- 再使用 rsa 标准命令从私钥中提取公钥;
openssl genrsa [-out filename] [-passout arg] [-des] [-des3] [-idea] [-f4] [-3] [-rand file(s)] [-engine id] [numbits]
# 生成私钥,指定私钥的长度为2048bit 1024基本安全, 2048非常安全
openssl genrsa -out rsa_private_key.pem 2048
# 根据私钥生成对应的公钥
openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key_2048.pub
# 私钥转化成pkcs8格式, 非必须,pkcs8格式解析起来更方便
openssl pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt > rsa_private_key_pkcs8.pem
OpenSSH的ssh-keygen
- OpenSSH 是使用 SSH 协议进行远程登录的连接工具。 它加密所有通信讯息以消除窃听、连接劫持。 此外,OpenSSH 提供了大量的安全隧道功能、多种身份验证方法和复杂的配置选项。
- OpenSSH 包含的组件如下:
(1)ssh:OpenSSH 远程登录客户端,作为 rlogin 和 Telnet 的替代方案。
(2)scp:OpenSSH 安全文件复制,作为 rcp 的替代方案,将文件复制到其他电脑上。
(3)sftp:OpenSSH 安全文件传输,类似于 scp。
(4)sshd:OpenSSH 守护进程。
(5)ssh-keygen:OpenSSH 身份验证密钥实用程序,产生RSA或ECDSA密钥,用来认证用。
(6)ssh-agent:OpenSSH 身份验证代理,用于帮助用户不需要每次都要输入密钥的工具。
(7)ssh-add:向 OpenSSH 身份验证代理添加私钥身份,用于帮助用户不需要每次都要输入密钥的工具。
(8)ssh-keyscan:从服务器收集 SSH 公钥,并记录公钥。
ssh
在 Linux 系统上 SSH 是非常常用的工具,通过 SSH Client 我们可以连接到运行了 SSH Server 的远程机器上。SSH Client 的基本使用方法是:
ssh user@remote -p port
执行 ssh-keygen 即可生成 SSH 钥匙,一路回车即可。
local$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa):
Created directory '/home/user/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/user/.ssh/id_rsa.
Your public key has been saved in /home/user/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:47VkvSjlFhKRgz/6RYdXM2EULtk9TQ65PDWJjYC5Jys user@local
The key's randomart image is:
+---[RSA 2048]----+
| ...o...X+o|
| . o+ B=Oo|
| .....ooo*=|
| o+ooo.+ .|
| .SoXo. . |
| .E X.+ . |
| .+.= . |
| .o |
| |
+----[SHA256]-----+
这段话告诉了我们,生成的公钥放在了 ~/.ssh/id_rsa.pub,私钥放在了 ~/.ssh/id_rsa。
区别
- OpenSSH常常被误认以为与OpenSSL有关联,但实际上这两个计划有不同的目的,不同的发展团队,名称相近只是因为两者有同样的软件发展目标──提供开放源代码的加密通讯软件。
- OpenSSH是SSH协议的具体实现、OpenSSL是SSL与TSL的具体实现。OpenSSH 与OpenSSL只是名字相似但是关联不大,同样软件发展目标是为提供开放源代码的加密通讯软件。而生成非对称公私钥的方式有很多,如OpenSSH 、OpenSSL与GnuPG。
SSL和TLS
SSL (Secure Sockets Layer)安全套接层。是由Netscape公司于1990年开发,用于保障Word Wide Web(WWW)通讯的安全。主要任务是提供私密性,信息完整性和身份认证。1994年改版为SSLv2,1995年改版为SSLv3.
TLS(Transport Layer Security)安全传输层协议,)用于在两个通信应用程序之间提供保密性和数据完整性。该标准协议是由IETF于1999年颁布,整体来说TLS非常类似SSLv3,只是对SSLv3做了些增加和修改。
SSL加密知名协议
- HTTP over SSL:简写https,加密网页浏览是设计SSL的初衷,HTTP也是第一个使用SSL保障安全的应用层协议。
- Email over SSL:类似于HTTP over SSL,邮件协议例如:MTP,POP3、IMAP也能支持SSL。SMTP over TLS的标准文档在RFC2487。POP3和IMAP over TLS的标准化文档在RFC2595.
协议结构
SSL的体系结构中包含两个协议子层,其中底层是SSL记录协议层(SSL Record Protocol Layer);高层是SSL握手协议层(SSL HandShake Protocol Layer)。
SSL协议主要分为两层:
SSL记录协议层的作用是为高层协议提供基本的安全服务。SSL纪录协议针对HTTP协议进行了特别的设计,使得超文本的传输协议HTTP能够在SSL运行。纪录封装各种高层协议,具体实施压缩解压缩、加密解密、计算和校验MAC等与安全有关的操作。
SSL握手协议层包括SSL握手协议(SSL HandShake Protocol)、SSL密码参数修改协议(SSL Change Cipher Spec Protocol)和SSL告警协议(SSL Alert Protocol)。握手层的这些协议用于SSL管理信息的交换,允许应用协议传送数据之间相互验证,协商加密算法和生成密钥等。
SSL握手协议的作用是协调客户和服务器的状态,使双方能够达到状态的同步。
其中最重要的是记录协议和握手协议:
SSL记录协议:它建立在可靠的传输(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能。
SSL握手协议:它建立在SSL记录协议之上,用于在实际的数据传输开始之前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。
ssh-keygen和openssl的区别和基本用法相关推荐
- telnet远程登陆、mstsc远程控制、SSH之间的比较和区别
Telnet与远程桌面mstsc 一 演示 打开mstsc演示: 01 win + r 输入mstsc 02 输入要远程的机子的用户名和密码 03 登录 04 连接开启了,如图即是通过win窗口操作远 ...
- linux下常用的关机命令有:shutdown、halt、poweroff、init;重启命令有:reboot。下面本文就主要介绍一些常用的关机命令以及各种关机命令之间的区别和具体用法。
linux下常用的关机命令有:shutdown.halt.poweroff.init:重启命令有:reboot.下面本文就主要介绍一些常用的关机命令以及各种关机命令之间的区别和具体用法. 原创未通过审 ...
- 用法与区别_生抽老抽、蚝油味极鲜,总算搞清楚区别了,用法大不同,别用错了...
生抽老抽.蚝油味极鲜,总算搞清楚区别了,用法大不同,别再用错了 各位读者朋友们大家好,感谢阅读我分享的美食文章,经验和大家一起共享,今天我要和大家分享的内容是:『生抽老抽.蚝油味极鲜,总算搞清楚区别了 ...
- mysql having ct_mysql中where和having子句的区别和具体用法
1.mysql中的where和having子句的区别 having的用法 having字句可以让我们筛选成组后的各种数据,where字句在聚合前先筛选记录,也就是说作用在group by和having ...
- before和after怎么区分_before和after区别 after的用法
导航:网站首页 > before和after区别 after的用法 before和after区别 after的用法 相关问题: 匿名网友: 一.意思不同 1.before作连词意思是在 ... ...
- 微信小程序全局变量(globalData)和缓存(StorageSync)的区别和具体用法
微信小程序全局变量(globalData)和缓存(StorageSync)的区别和具体用法 一.缓存(StorageSync)本地存储 1.小程序中的本地存储有同步功能,可用于保存用户信息(用户登录后 ...
- openssl 版本区别_冰蝎的前世今生:3.0新版本下的一些防护思考
微信又改版了,为了我们能一直相见 你的加星和在看对我们非常重要 点击"长亭安全课堂"--主页右上角--设为星标? 期待与你的每次见面- 冰蝎(Behinder)是国内黑客圈较火的一 ...
- ssh配置文件ssh_config和sshd_config区别
问题描述:在一次配置ssh端口和秘钥登录过程中,修改几次都没有成功.最后发现修改的是ssh.config,原因是习惯tab一下,实在是眼拙! ssh_config和sshd_config配置文件区别 ...
- Telnet、Mstsc、SSH之间的比较和区别
今天需要用telnet到IBM服务器的交换机模块上进行配置,但是当我打开windows server 2008自带的CMD输入telnet命令之后,系统却提示我"不是内部或外部命令也不是可运 ...
最新文章
- android在Service,BroadCast onReceiver()中弹出Dialog对话框
- 创建线程时候多参数传递方法及参数改变问题--扫雷辅助(三)
- javaScript学习笔记之类型转换
- REBOOT Reload - 可安装在优盘的 Windows 和 DOS 启动盘
- explain for connection用法
- python excel 添加数据_使用pyexcel python在电子表格中添加行数据
- verilog状态机以及编码详解
- 拓端tecdat|R语言极值理论EVT:基于GPD模型的火灾损失分布分析
- php 简繁体,使用php实现简体转繁体的方法
- 磁盘分区误删怎样恢复?
- 数据库连接_由浅入深搭建Mybatis框架
- python中的图形界面设计_python图形化界面设计(tkinter)一全面介绍
- Python3中省略号(...)用法介绍
- grunt 使用教程及步骤
- 福禄克FLUKE 435-2电能质量分析仪测试瞬态与电压不平衡
- 酒店女继承人抨击酒店时弊
- 22个最流行的三维重建软件【2022】
- GLAD:利用全息图实现加密和解密
- 运维实践 | 运维打工人必备 CentOS-Linux/Stream-8 服务器系统基础安装与配置实践...
- 计算机教学辅助平台,教学辅助平台
热门文章
- LINUX常用命令和目录架构
- OneNET物联网平台11 使用OneNET平台提供的API向设备发送命令
- 为什么超过500万开发者选择了ASP.NET Core?
- Vue3的新特性变化,上手指南!
- java实现在tcp协议下进行数据的传输
- 【图吧导航】非常好的手机导航软件Mapbar,支持离线地图下载(就是谷歌地图)_我是亲民_新浪博客...
- DATASTAGE运行job时出现数据库错误解决办法
- Android开发——项目实例(五)集新闻、音乐、电影于一体的软件(带打包源码)
- 助讯通服务器没有运行什么原因,助讯通服务端
- 11.1,京东的狂欢已经开始了