HICE-SSH使用RSA认证方式进行登陆
0x00 SSH认证
这个还是一个小伙伴半夜来问我,你知道华为怎么用RSA
密钥进行登陆吗?
有点傻眼,这么久了,还是第一次有人问我这个问题,真是没注意过,很久之前学习linux
时确实知道是可以使用客户端公钥进行登陆的,但是从来都没有想过原来路由器也可以这样搞。。。
由于当时有事,就没有去测试,不过小伙伴也很厉害,通过把原本的server
当作客户端去ssh
到原本的client
时,会保存下来密钥,反手就把这个密钥分配给真正的客户端,从而实现了公钥登陆服务器。。。
先说下常见SSH
认证的两种方式,即使用用户名密码或者使用公钥认证。
0x01 使用用户名/密码对的方式
工作流程:
1.向服务器进行发起连接2.服务器回复它的公钥3.双向协商安全参数并建立连接4.用户登入服务器
可见这种方式并不安全,因为当在上述的流程2
时,如果攻击者截取了client
的请求连接消息,并将自己的公钥
发送给client
就可以通过欺骗实现攻击了,比如中间人,钓鱼或者代理等。
生活中用的最多的ssh
方式就是这一种了。下面简单贴下ssh
的配置
server-AR2
user-interface vty 0 4authentication-mode aaaprotocol inbound ssh
#
stelnet server enable
#
aaa local-user test password cipher ciscolocal-user test privilege level 3
#
client-AR1
[AR1]ssh client first-time enable
[AR1]stelnet 12.1.1.2
Please input the username:test
Trying 12.1.1.2 ...
Press CTRL+K to abort
Connected to 12.1.1.2 ...
The server is not authenticated. Continue to access it? (y/n)[n]:y
Apr 25 2020 21:27:55-08:00 AR1 %%01SSH/4/CONTINUE_KEYEXCHANGE(l)[1]:The server had not been authenticated in the process of exchanging keys. When deciding whether to continue, the user chose Y.
[AR1]
Save the server's public key? (y/n)[n]:y
The server's public key will be saved with the name 12.1.1.2. Please wait...Apr 25 2020 21:27:59-08:00 AR1 %%01SSH/4/SAVE_PUBLICKEY(l)[2]:When deciding whether to save the server's public key 12.1.1.2, the user chose Y.
[AR1]
Enter password:
<AR2>quit
0x02 使用公钥认证
工作流程:
前提条件,client已经创建好的非对称密钥对,将公钥已经通过安全的方式传递到了server上。1.客户端进行ssh连接的初始化2.服务器回复随机数3.客户端使用私钥进行加密随机数,并发送给服务器4.服务器拿公钥进行解密,如果解密成功,则验证通过。
看这个流程图,感觉有点怪,但是google
上的这样流程图还是不少的,于是又在百度里面搜了一圈,发现了另外一张流程图。
个人感觉,这个比较符合华为配置的逻辑,找RFC
找了一圈也没发现在哪个RFC
当中定义的,维基上还给出了第三种,难受了。
暂时先认为第二个是对的吧。下面贴出华为路由器使用rsa
验证发式的关键配置,大部分配置和上一个实验一样,x细微改动如下:
client-AR1
[AR1]display rsa local-key-pair public =====================================================
Time of Key pair created: 2007-08-25 16:35:02-08:00
Key name: Host
Key type: RSA encryption Key
=====================================================
Key code:
30470240C974420D DD712C58 36A67819 362FEB9C 9C17E32624101B32 C272F9C9 E3CD06EB C2C73F7C BC89A0E0994995EF 7885F359 57B25237 3D441556 A050F8236087E121 0203010001//上面是默认的公钥,也可以通过命令rsa local-key-pair create 重新创建
//记住,key code下面的数字是等会要用的
server-AR2
//更改ssh的验证方式为rsa
[AR2]ssh user test authentication-type rsa Authentication type setted, and will be in effect next time//配置AR1的公钥
[AR2]rsa peer-public-key AR1-PPK
Enter "RSA public key" view, return system view with "peer-public-key end".
NOTE: The number of the bits of public key must be between 769 and 2048.
[AR2-rsa-public-key]public-key-code begin
Enter "RSA key code" view, return last view with "public-key-code end".
[AR2-rsa-key-code]3047
[AR2-rsa-key-code] 0240
[AR2-rsa-key-code] C974420D DD712C58 36A67819 362FEB9C 9C17E326
[AR2-rsa-key-code] 24101B32 C272F9C9 E3CD06EB C2C73F7C BC89A0E0
[AR2-rsa-key-code] 994995EF 7885F359 57B25237 3D441556 A050F823
[AR2-rsa-key-code] 6087E121
[AR2-rsa-key-code] 0203
[AR2-rsa-key-code] 010001
[AR2-rsa-key-code]public-key-code end
[AR2-rsa-public-key]peer-public-key end
[AR2]//将刚刚配置的公钥分配给AR1的用户test
[AR2]ssh user test assign rsa-key AR1-PPK
client-AR1
验证现象,免密登陆成功。
[AR1]stelnet 12.1.1.2
Please input the username:test
Trying 12.1.1.2 ...
Press CTRL+K to abort
Connected to 12.1.1.2 ...----------------------------------------------------------------------------- User last login information: -----------------------------------------------------------------------------Access Type: SSH IP-Address : 12.1.1.1 ssh Time : 2020-04-25 21:28:15-08:00 -----------------------------------------------------------------------------
<AR2>
0x03 RFC4252
还是找到了,虽然没说的很详细,但是感觉第一张英文的流程图是对的。。。
To perform actual authentication, the client MAY then send a signature generated using the private key
,有这么一句话,和第一张流程图还是对应上了。不过在抓包中啥都没找到,难受。。。
当然,也许在实际生活中,设计不一进按照rfc
来进行设计的,也许都是对的。。。算了,不纠结了,睡觉,狗命要紧。。。
HICE-SSH使用RSA认证方式进行登陆相关推荐
- Linux下SSH使用rsa认证方式省去输入密码
使用Linux主机生成的密匙 1.生成密匙 [root@www.linuxidc.com .ssh]#ssh-keygen -t rsa Generating public/private rsa k ...
- 禁用了ssh的密码认证方式导致无法登陆
登录服 务器时出现"Disconnected:No supported authentication methods available(xxx)"的提示,而此时使用的是密码登陆, ...
- 10.30系统进程及服务控制,前后台调用,kill,进程信号,top进程动态监控,系统控制systemctl,ssh服务和认证,用户登陆审计
#######单元6.系统进程及服务控制##### ####1.什么是进程 进程:运行的程序 ####2.查看进程 1)图形方式查看 gnome(the gun network object mode ...
- linux交换机登陆密码,h3c交换机配置ssh密码验证登录方式
一.背景: 1.由于PC机串口不支持热插拔,请不要在交换机带电的情况下,将串口插入或者拔出PC机.当连接PC和交换机时,请先安装配置电缆的DB-9端到PC机,再连接RJ-45到交换机:在拆下时,先拔出 ...
- Java 实现 SSH 协议的客户端登录认证方式
摘自:http://blog.sae.sina.com.cn/archives/333/comment-page-1#comment-37391 简介: 本文首先对 SSH 协议的基础知识作以介绍,然 ...
- Java 实现 SSH 协议的客户端登录认证方式--转载
背景 在开篇之前,让我们先对 SSH 协议有个宏观的大致了解,这样更有利于我们对本文的加深了解.首先要提到的就是计算机网络协议,所谓计算机网络协议,简单的说就是定义了一套标准和规则,使得不同计算机之间 ...
- oracle登陆认证方式
ORACLE数据库通过sqlnet.ora文件中的参数sqlnet.authentication_services,参数文件中的remote_login_passwordfile和口令文件pwdsid ...
- 手机版QQ登陆的认证方式有哪些?
手机版QQ登录的认证方式包括: 使用QQ账号和密码登录 使用手机号和短信验证码登录 使用微信账号登录 使用微博账号登录 使用Facebook账号登录 使用手机Touch ID或面部识别登录.
- linux系统密码正则,Linux密钥登录原理和ssh使用密钥实现免密码登陆
目录 1.公私钥简介与原理 公钥和私钥都属于非对称加密算法的一个实现,这个加密算法的信息交换过程是: 1) 持有公钥的一方(甲)在收到持有私钥的一方(乙)的请求时,甲会在自己的公钥列表中查找是否有乙的 ...
- 程序员过关斩将--更加优雅的Token认证方式JWT
点击上方"蓝字"带你去看小星星 菜菜,上次你讲的cookie和session认证方式,我这次面试果然遇到了 结果怎么样? 结果面试官问我还有没有更好的方式? 看来你又挂了 别说了, ...
最新文章
- 一起感受不一样的项目沙盘
- 计算机科学软件工程专业大学排名,2020软件工程专业大学排名及录取分数汇总(2021理科生参考)...
- Google AdSense 帐户已被停用
- ASP.NET Core Web 应用程序系列(四)- ASP.NET Core 异步编程之async await
- H3CPPPOE拨号
- 【转载】Jquery中的$命名冲突的解决方案
- VMware利用unlocker开启MacOS支持
- 华为笔试题 2022.3.30
- python将整数转换成二进制形式的方法
- 安卓系统强制旋转屏幕实现横竖屏切换
- Mybatis使用choose when
- 从计算机内部提取型号和mac,Mac计算机型号这么多 我该选哪一个?
- ‘rimraf‘ 不是内部或外部命令,也不是可运行的程序
- (阿里巴巴开发手册)为什么阿里巴巴推荐内部员工使用StringBuilder?
- 流年如风卷起梅花飘零的记忆
- 年节约10亿美元 微软宣布裁员
- 字符表单验证与正则表单验证
- windows找不到文件常见问题
- 大包回转台液压滑环的应用
- 用 java实现双色球号码生成系统;(在装满33个红色球池中连续抽取6个红球; 在一个装满16颗球的蓝色球池中抽取1个蓝球。)