基于开源安全外壳协议的登录方法及登录系统的制作方法

文档序号:9527646阅读:834来源:国知局
基于开源安全外壳协议的登录方法及登录系统的制作方法
【技术领域】
[0001] 本发明涉及通信技术领域,特别是涉及一种基于开源安全外壳协议的登录方法及 登录系统。
【背景技术】
[0002] 安全外壳协议(SecureShell,SSH)是目前较可靠,专为远程登录会话和其他网 络服务提供安全性的协议。利用SSH协议不仅可以有效防止远程管理过程中的信息泄露问 题,还可以压缩传输的数据,加快传输的速度。SSH有很多功能,它既可以代替Telnet,又可 以为FTP、PoP、甚至为PPP提供一个安全的"通道"。
[0003] 诸如交换机等网络设备系统都有自己定制的命令行界面(command-1ine interface,CLI)配置界面。用户通过SSH登录时进入的是嵌入式设备系统定制的CLI配 置界面,而不是linux系统的shell界面。
[0004]目前国内,除少数几家研发实力较强的公司会自己实现SSH协议外,大部分的网 络设备研发厂商都是基于开源SSH软件(如OpenSSH),针对自身系统做适配修改开源软件 的源码来实现SSH用户认证登陆功能。
[0005] 然而,若公司自己实现SSH协议的开发,不使用开源软件,这个研发成功高,仅适 合少数有一定研发实力的公司。而众多公司利用开源SSH软件(如OpenSSH),针对自身系 统做适配修改开源软件的源码来实现SSH用户认证登陆功能。但是,目前因为要修改开源 软件源码,需要对开源软件的源码进行学习,后续升级开源软件版本或者更换开源软件、系 统维护人员的成本高。
[0006] 因此,如何在不增加成本的基础上实现SSH用户的登录功能就成为本领域技术人 员亟待解决的问题之一。

【发明内容】

[0007] 鉴于以上所述现有技术的缺点,本发明的目的在于提供一种基于开源安全外壳协 议的登录方法及登录系统,用于解决现有技术中实现SSH用户登录功能成本较高的问题。
[0008] 为实现上述目的及其他相关目的,本发明提供一种基于开源安全外壳协议的登录 方法,所述基于开源安全外壳协议的登录方法包括以下步骤:向开源安全外壳协议应用模 块发送系统用户信息;Linux内核模块对所述系统用户信息进行验证;当Linux内核对所述 系统用户信息验证通过后,执行重定向应用模块以实现登录。
[0009] 于本发明的一实施例中,所述执行重定向应用模块以实现登录的步骤包括:在所 述重定向应用模块与Linux内核之间建立重定向SSH连接;在所述重定向应用模块与预制 命令行界面之间建立TCP连接以实现登录。
[0010] 于本发明的一实施例中,在所述重定向应用模块与预制命令行界面之间建立长 TCP连接。
[0011] 于本发明的一实施例中,所述基于开源安全外壳协议的登录方法还包括:在登录 Linux系统后,向Linux内核中添加系统用户信息,所述系统用户信息包括:用户名和密码。
[0012] 于本发明的一实施例中,所述向Linux内核中添加系统用户信息的步骤包括: Linux内核将所述系统用户信息保存在/etc/shadow和/etc/passwd文件夹中。
[0013] 于本发明的一实施例中,Linux内核将所述系统用户信息保存在/etc/passwd文 件夹中时,在所述/etc/passwd文件夹中指定系统用户信息验证通过后的执行程序为所述 重定向应用模块。
[0014] 本发明提供一种基于开源安全外壳协议的登录系统,所述基于开源安全外壳协议 的登录系统包括:开源安全外壳协议应用模块,用于接收系统用户信息;Linux内核,用于 对所述系统用户信息进行验证;重定向应用模块,用于当Linux系统对所述系统用户信息 验证通过后,执行所述重定向应用模块以实现登录。
[0015] 于本发明的一实施例中,所述重定向应用模块包括:第一重定向单元,用于在所述 重定向应用模块与Linux系统内核之间建立重定向SSH连接;第二重定向单元,用于在所述 重定向应用模块与预制命令行界面之间建立TCP连接以实现登录。
[0016] 于本发明的一实施例中,所述第二重定向单元在所述所述重定向应用模块与预制 命令行界面之间建立长TCP连接。
[0017] 于本发明的一实施例中,所述基于开源安全外壳协议的登录系统还包括:用户信 息添加模块,用于在登录Linux系统后,向Linux内核中添加系统用户信息,所述系统用户 信息包括:用户名和密码。
[0018] 如上所述,本发明的基于开源安全外壳协议的登录方法及登录系统,具有以下有 益效果:
[0019] 本发明的基于开源安全外壳协议的登录方法,在Linux内核对系统用户信息验证 通过后,通过重定向应用模块实现登录,不需要修改开源软件的源码,因此,大大降低了后 续升级或者系统维护的成本。
【附图说明】
[0020] 图1显示为本发明基于开源安全外壳协议的登录方法的于一实施例中的流程示 意图。
[0021] 图2显示为本发明基于开源安全外壳协议的登录系统的于一实施例中的结构示 意图。
[0022] 元件标号说明
[0023] 2 基于开源安全外壳协议的登录系统
[0024] 21 开源安全外壳协议应用模块
[0025] 22 Linux内核
[0026] 23 重定向应用模块
[0027]S11 ~S13 步骤
【具体实施方式】
[0028] 以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书 所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实 施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离 本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施 例中的特征可以相互组合。
[0029] 需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构 想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸 绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也 可能更为复杂。
[0030] 正如【背景技术】中所述的,目前通过SSH进行登录时,要么自己开发SSH协议,要么 利用开源SSH软件来实现,但是无论哪种方式,开发的成本都很高,应用的范围非常受限。
[0031] 请参阅图1,本发明提供一种基于开源安全外壳协议的登录方法,所述基于开源安 全外壳协议的登录方法包括以下步骤:
[0032]S11,向开源安全外壳协议应用模块发送系统用户信息;
[0033] S12,Linux内核模块对所述系统用户信息进行验证;
[0034]S13,当Linux内核对所述系统用户信息验证通过后,执行重定向应用模块以实现 登录。
[0035] 具体地,用户通过SSH客户端软件(如SecureCRT)请求与OpenSSH建立SSH连接, 在此过程中向OpenSSH发送SSH用户名和密码。
[0036]OpenSSH向linux查询用户名是否存在及用户名的密码是否正确,如果不正确,拒 绝用户的连接请求,否则进行下一步处理。具体地,linux系统内核(linuxkernel)对用 户名及密码进行验证。
[0037]OpenSSH在得知用户认证通过后,执行RdirectIO应用程序(该应用程序为预开 发的重定向应用模块)。OpenSSH在执行RdirectIO时进行重定向,从而实现SSH用户的登 录。RdirectIO是本实施例中需要实现的一个应用程序,其功能参考后面的描述。
[0038] 在本实施例中,所述执行重定向应用模块以实现登录的步骤包括:在所述重定向 应用模块与Linux内核之间建立重定向SSH连接;在所述重定向应用模块与预制命令行界 面之间建立TCP连接以实现登录。具体地,在所述重定向应用模块与预制命令行界面之间 建立长TCP连接。
[0039] 在实际应用中,OpenSSH在执行RdirectIO时,创建一个管道(pipe)。通过这个管 道,RdirectIO的标准10会重定向到ssh连接。同时,RdirectIO与系统定制CLI建立一条 tcp连接,把RdirectIO的标准10重定向到这条tcp连接。
[0040] 也就是说,RdirectIO的功能是将系统定制CLI的输入重定向到RdirectIO标准 输出;同样,将RdirectIO的标准输入重定向到系统定制CLI的输出,这样就可以通过在系 统定制CLI与RdirectIO之间建立TCP长连接来实现这里的10重定向功能。
[0041] 具体地,所述RdirectIO的实现代码为:
[0042]
[0044] 经过上述两步10重定向(Input&Output)处理,SSH用户通过SSH认证登录系统 后,在SSH客户端(如SecureCRT)上输入的数据经过两次重定向到达系统CLI界面;反之, 系统定制CLI输入的数据也经过两次重定向到达SSH客户端。
[0045] 虽然实际上用户在SSH连接上输入的数据是
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1